我最近得到了第一个与切诺基一起在uWSGI工作的应用程序。我使用了以下代码来自uWSGI docs:
def application(environ, start_response):
start_response('200 OK', [('Content-Type', 'text/plain')])
yield 'Hello World\n'
页面正确读取Hello World
。当我将该文本更改为New Thing
并刷新时,没有任何更改。我忘记了什么?
我尝试了什么:
<小时/> 编辑:为了澄清,我在Python代码中将
Hello World
更改为New Thing
。然后我停止切诺基,刷新,我显然看到一条错误信息。我重新启动切诺基,刷新,我看到Hello World
。
答案 0 :(得分:2)
所以它的工作方式是切诺基为你管理一个正在运行的uwsgi实例。到目前为止,我注意到的是,如果你关闭切诺基,它似乎也没有关闭运行uwsgi实例。
试试这个:
sudo service cherokee start
ps aux | grep uwsgi
# you should see nothing from this ps command
# now hit your web app
sudo service cherokee stop
ps aux | grep uwsgi
# you should see the instance of uwsgi that cherokee started
因此,您的应用代码实际上是通过uwsgi运行的,切诺基更像是代理服务器。为了更新应用程序代码,您需要将HUP信号发送给uwsgi,而不是Cherkee。
sudo killall -HUP uwsgi
这应该会导致uwsgi更新到您的应用更改,无论切诺基如何。