django - Django 和 Celery 示例 : Periodic Tasks

标签 django rabbitmq celery django-celery

我一直在与 Django/Celery 文档作斗争,现在需要一些帮助。

我希望能够使用 django-celery 运行周期性任务。我在互联网(和文档)上看到了几种不同的格式和模式,用于说明如何使用 Celery 实现这一目标......

有人可以帮助创建、注册和执行 django-celery 周期性任务的基本功能示例吗?特别是,我想知道我是否应该编写一个扩展 PeriodicTask 类的任务并注册它,或者我是否应该使用 @periodic_task 装饰器,或者我是否应该使用 @task 装饰器然后为任务的执行。

我不介意所有三种方式是否都可能,但我希望看到至少一种有效方式的示例。真的很感谢你的帮助。

最佳答案

example from the docs出了什么问题?

from celery.task import PeriodicTask
from clickmuncher.messaging import process_clicks
from datetime import timedelta


class ProcessClicksTask(PeriodicTask):
    run_every = timedelta(minutes=30)

    def run(self, **kwargs):
        process_clicks()

您可以使用装饰器编写相同的任务:
from celery.task.schedules import crontab
from celery.task import periodic_task

@periodic_task(run_every=crontab(minute="*/30"))
def process_clicks():
    ....

decorator syntax只是允许您将现有功能/任务转换为周期性任务,而无需直接修改它们。

对于要执行的任务 celerybeat must be running .

关于django - Django 和 Celery 示例 : Periodic Tasks,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8224482/

相关文章:

django - 使用 django channel 和 celery 收听 mqtt 主题

python - Pycharm 在运行测试时找不到 Django 应用程序 'users'

multithreading - Masstransit rabbitMQ 在多线程上发布

RabbitMQ - RabbitMQ 在单个服务器上可以处理多少个队列?

python - 如何使用 PyCharm 在 Django 测试中运行 celery

python - 如何在 Windows 上运行 celery?

javascript - 如何将 json 字典从 javascript.get 传递到 django 模板?

android - 如何使用 phonegap 在 django 服务器中上传文件?

python - 如何显示外键属性 Django 管理字段?

rabbitmq - 解码 RabbitMQ 有效负载