我正在使用beaker cache来缓存函数的输出。
当我从flask uwsgi应用程序中取消缓存时,它没有反映在芹菜应用程序中,反之亦然。
进一步调查发现,使用inspect.getsourcefile(func)
的烧杯用于存储redis的唯一密钥。
现在的问题是: 在flask uwsgi app中,加载函数的路径显示为
./的myproject / db_api.py
在芹菜中它显示为:
/opt/myproject/db_api.py。
如何确保inspect.getsourcefile(func)
函数在两种情况下都返回相同的路径?
要么将芹菜设置为./myporject/db_api.py或烧瓶加载路径为/opt/myproject/db_api.py就好了。
Celery在/ etc / default / celeryd中run as a daemon CELERYD_CHDIR='/opt'
。在celeryconfig.py
我有CELERY_IMPORTS = ('myproject.controllers.celerytasks.cache_invalidate')
在ubuntu上使用带有.ini文件的uwsig运行Flask,配置如下:
[uwsgi]
module = myproject
callable = app
chdir = /opt