Celery 没有从五分之一的应用程序加载任务

Celery is not loading tasks from one app out of five

我在 celery.py 文件中使用自动发现来收集任务。直到最近选择了所有 app.tasks.py,我不确定为什么我的 config.tasks.py 功能不再被选择,但所有其他应用程序都被选择了。如果我从“config.tasks导入*”没有错误,我可以通过shell手动运行任务。

我试过在自动发现上使用 force=True 但没有效果,还有许多其他解决方案,none 似乎有任何效果,有人对接下来要检查的内容有任何想法吗?

谢谢

结构:

-config
--apps.py
--views.py
--models.py
--tasks.py
-monitoring
--apps.py
--views.py
--models.py
--tasks.py
-app
--apps.py
--settings.py
--celery.py

芹菜配置

from __future__ import absolute_import, unicode_literals
import os, django
from celery import Celery

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'app.settings')

django.setup()  # This is key

app = Celery("app")
app.config_from_object('django.conf:settings', namespace='CELERY')

# Load task modules from all registered Django app configs.
app.autodiscover_tasks()

if __name__ == '__main__':
    app.start()

settings.py

CELERY_TIMEZONE = 'Europe/London'
ENABLE_UTC = True
CELERY_BROKER_URL = 'redis://redis:6379'
CELERY_RESULT_BACKEND = 'redis://redis:6379'
CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler'
CELERY_TASK_TIME_LIMIT = 540

INSTALLED_APPS = (
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'django.contrib.humanize',
    'haystack',
    'django_tables2',
    'django_filters',
    'django_celery_beat',
    'config.apps.ConfigConfig',
    'monitoring.apps.MonitoringConfig',
    'storages',
    'stdimage',
    'simple_history',
    'crispy_forms',
    'rest_framework',
    'rest_framework.authtoken',
    )

tasks.py

from __future__ import absolute_import, unicode_literals
import requests, re, json, ipaddress, time, meraki, logging, random, gzip, diffios
from celery import chord, group
from app.celery import app
from django.conf import settings
from config.models import * 


@app.task
def execute_command(device_id, cmd, user_id):
    ...
    return output

控制台输出

celery_1   |  -------------- celery@3504f0d9bb2e v4.3.1 (rhubarb)
celery_1   | ---- **** -----
celery_1   | --- * ***  * -- Linux-4.19.121-linuxkit-x86_64-with-debian-9.7 2021-02-09 12:14:41
celery_1   | -- * - **** ---
celery_1   | - ** ---------- [config]
celery_1   | - ** ---------- .> app:         app:0x7f82527f04a8
celery_1   | - ** ---------- .> transport:   redis://redis:6379//
celery_1   | - ** ---------- .> results:     redis://redis:6379/
celery_1   | - *** --- * --- .> concurrency: 30 (prefork)
celery_1   | -- ******* ---- .> task events: OFF (enable -E to monitor tasks in this worker)
celery_1   | --- ***** -----
celery_1   |  -------------- [queues]
celery_1   |                 .> celery           exchange=celery(direct) key=celery
celery_1   |
celery_1   |
celery_1   | [tasks]
celery_1   |   . app_settings.tasks.import_meraki_templates
celery_1   |   . celery.accumulate
celery_1   |   . celery.backend_cleanup
celery_1   |   . celery.chain
celery_1   |   . celery.chord
celery_1   |   . celery.chord_unlock
celery_1   |   . celery.chunks
celery_1   |   . celery.group
celery_1   |   . celery.map
celery_1   |   . celery.starmap
celery_1   |   . app.celery.debug_task
celery_1   |   . monitoring.tasks.link_checks
celery_1   |   . monitoring.tasks.service_checks

配置文件夹中是否有 __init__.py 文件?

我重建了我的 docker 容器,现在它们都重新加载了,不知道是什么原因造成的,但它正在工作!