这是 settings.py
import djcelery
djcelery.setup_loader()
CELERY_TIMEZONE = 'Asia/Shanghai'
BROKER_URL = 'django://'
CELERY_RESULT_BACKEND='djcelery.backends.database:DatabaseBackend'
CELERYBEAT_SCHEDULER = ‘ djcelery.schedulers.DatabaseScheduler'
INSTALLED_APPS = (
……
'djcelery',
'kombu.transport.django',
)
我在本地跑:
python manage.py runserver
celery -A proj worker -l info
python manage.py celery beat
可以正常的在 admin 中看到 djcelery ,并添加、编辑 task ,任务可以正常的执行并得到正确的结果
我把代码同步到服务器( django+nginx+fcgi ),运行( python manage.py runfcgi method=threaded host=127.0.0.1 port=9001 )后却发现在 admin 中看不到 djcelery !我确信 settings.py 文件与上面贴的一致,执行过 python manage.py migrate 而且我在服务器的本地执行 python manage.py runserver 的话,在
http://127.0.0.1:8000/admin/是可以看到 djcelery 的。
在服务器本地可以看见 djcelery ,真正跑服务器时又看不到。至此我怀疑是不是静态文件使用之类的问题,我在服务器执行 python manage.py collectstatic ,结果 static 文件夹多了一个 djcelery 的 style.css 文件,但是在 admin 中还是看不到 djcelery 。
这是 settings.py 中有关静态文件的配置,我不太清楚这些信息对于诊断问题是否有帮助。
STATIC_URL = '/static/'
STATICFILES_DIRS = (
os.path.join(BASE_DIR, "static"),
)
STATIC_ROOT = '/static/'
MEDIA_ROOT = os.path.join(BASE_DIR, "appmedia")
TEMPLATE_DIRS = (
os.path.join(BASE_DIR, 'templates'),
)
如果需要更多信息,我继续贴。先谢谢大家了