跟 Django 的整合可以參考 First steps with Django
裏
面會要求你在 django app 的目錄下新增一個 celery.py,這裡有一行
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS) ,這行就是找到所有 tasks
的關鍵。找不到 task 的話,執行 python manage.py celeryd 時,不會有錯誤訊息,只在程式要執行這些 task
時印出錯務訊息,說找不到。
原始碼是在 celery/app/base.py 裡,大致就是依照 INSTALLED_APPS 列出的
package 去找 tasks,有的話就 import 進來。如果你的 celery task 沒有列在 INSTALLED_APPS
裡,或是函式不在 tasks 裡的話,可以再多加 app.autodiscover_tasks,例如
app.autodiscover_tasks(['your_module'], related_name='my_tasks')
,這樣就可以引入使用了。
沒有留言:
張貼留言