芹菜中每个任务花费的时间

时间:2020-01-15 15:43:51

标签: django celery

疑问1:-

我当前正在 celery 用于异步任务。目前在我的计算机上,该功能已传递给8位工作人员。

我想知道需要花费多少时间来处理每个工人的结果。

另外,我听说在celery中,for循环和print语句不起作用,这是真的吗?

疑问2:-

最初,我在Django项目之外尝试了celery,现在我想集成到我的Django项目中。我已经看到,有一个单独的设置芹菜的过程,尤其是在Django中。如果我在Django项目中使用以前的常规芹菜原料,还是必须像创建__int__.py文件等.. 这样,以Django的方式来使用它,它会起作用吗?

我维护了一个 task.py ,然后在 views.py 中从任务中导入该函数,并在 views.py中编写了一个单独的函数,其中使用delay()函数将数据传递到task.py以异步运行。

1 个答案:

答案 0 :(得分:0)

关于您的疑问2

您是正确的,在您的100中加入芹菜是必不可少的:

init.py

另一个重要的项目(至少在我学会如何使用Celery方面)是在项目文件夹中添加# __init__.py from __future__ import absolute_import, unicode_literals # This will make sure the app is always imported when # Django starts so that shared_task will use this app. from .celery import app as celery_app __all__ = ['celery_app'] 并添加类似于以下内容的内容。这些也可以添加到您的celery.py中,但是我喜欢这种分隔。

settings.py

最后,您的# celery.py from __future__ import absolute_import, unicode_literals import os from celery import Celery # set the default Django settings module for the 'celery' program. os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'your_project.settings') app = Celery('your_project') # Using a string here means the worker don't have to serialize # the configuration object to child processes. # - namespace='CELERY' means all celery-related configuration keys # should have a `CELERY_` prefix. app.config_from_object('django.conf:settings', namespace='CELERY') # Load task modules from all registered Django app configs. app.autodiscover_tasks() 将能够理解您的芹菜命令。如果使用此格式,那么您的celery命令需要CELERY_作为前缀。我的示例涉及利用后端服务器容纳芹菜动作。在这里,我展示了如何利用Redis进行此类活动。我的生产示例适用于我目前在Heroku上托管的一个项目。

settings.py
相关问题