如何从 django 启动远程芹菜工人



我正在尝试将django与芹菜结合使用。

因此,我遇到了autodiscover_tasks(),我不完全确定如何使用它们。芹菜工作线程获取其他应用程序(在本例中为节点后端(添加的任务。

到目前为止,我使用它来启动工作线程:

celery worker -Q extraction --hostname=extraction_worker

这工作正常。

现在我不确定 django-celery 集成的总体思路是什么。worker应该仍然从外部启动(例如使用上面的命令(,还是应该从django应用程序管理和启动?

我的 celery.py 看起来像:

# set the default Django settings module for the 'celery' program.
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'main.settings')
app = Celery('app')
app.config_from_object('django.conf:settings', namespace='CELERY')
# Load task modules from all registered Django app configs.
app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)

然后我有 2 个应用程序包含一个 tasks.py 文件:

@shared_task
def extraction(total):
return 'Task executed'

我现在如何注册 Django 来注册这些任务的工作者?

您只需按照文档启动工作进程,无需注册任何其他内容

在生产环境中,您需要在 背景作为守护程序 - 请参阅守护进程化 - 但用于测试和 开发 能够通过以下方式启动工作线程实例很有用 使用 celery worker manage 命令,就像使用 Django 的命令一样 manage.py 运行服务器:

celery -A proj worker -l info

有关可用命令行选项的完整列表,请使用 帮助命令:

celery help

芹菜工人在运行时收集/注册任务,并消耗它发现的任务

相关内容

  • 没有找到相关文章

最新更新