簡體   English   中英

如何在Django項目中將每個基於celery類的任務保存在單獨的文件中?

[英]How to keep each celery class based task in separate file in django project?

我在django項目中已使用以下網站的官方文檔設置了celery
http://docs.celeryproject.org/en/latest/django/first-steps-with-django.html#using-celery-with-django

所以我的項目結構是

└── mysite
    ├── db.sqlite3
    ├── manage.py
    ├── mysite
    │   ├── celery.py
    │   ├── __init__.py
    │   ├── settings.py
    │   ├── urls.py
    │   └── wsgi.py
    └── polls
        ├── admin.py
        ├── apps.py
        ├── forms.py
        ├── __init__.py
        ├── migrations
        │   ├── 0001_initial.py
        │   └── __init__.py
        ├── models.py
        ├── tasks.py
        ├── tests.py
        └── views.py  

polls是應用
polls/tasks.py具有基於類的celery任務。
當前tasks.py有很多任務,因此文件太大。 我想將每個任務保存在單獨的文件中,例如

mysite/polls/
├── admin.py
├── apps.py
├── forms.py
├── __init__.py
├── migrations
│   ├── 0001_initial.py
│   └── __init__.py
├── models.py
├── tasks # I want to keep easy task in separate file like this
│   ├── __init__.py
│   ├── download_task.py
│   ├── process_task.py
│   └── upload_task.py
├── tests.py
└── views.py

如何使該設置正常工作?

那是100%正確的。 在您的tasks/__init__.py文件中,確保從其他文件導入任務:

    from .download_task import *  
    from .process_task import *
    # etc...

然后確保您在celery.py文件中具有autodiscover_tasks調用,以發現每個INSTALLED_APPS的任務。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM