【问题标题】:Periodic task is not working properly in django celery周期性任务在 django celery 中无法正常工作
【发布时间】:2016-01-14 18:36:15
【问题描述】:

您好朋友们,我需要您在 django 应用程序的定期任务中提供帮助。我正在尝试使用 celery 执行定期任务,但它无法正常工作。我有一个简单的任务,其中只有一个打印语句。芹菜只工作了第一次,我也试过“芹菜节拍”,但没有结果

我的“task.py”是

from __future__ import absolute_import
from myapp.celery import app
from celery.schedules import crontab
from celery.task import periodic_task
from celery.registry import tasks

@periodic_task(run_every=(crontab(minute='*/1')), name="some_task")
def every_minute(a,b):
    print("This is running after one minute",a+b)
    return "task done"
tasks.register(every_minute)

和“view.py”

from django.http import HttpResponse
from django.views.generic import View
from .tasks import *
from .models import *
from datetime import datetime, timedelta

class CeleryTest(View):
    def get(self,request):
        send_date = datetime.now() + timedelta(seconds=200)
        task=every_minute.apply_async([5,6],etc=send_date)
        while not task.ready():
            print "calling............task is not ready"
        return HttpResponse("hi get ur task")

我刚刚在之前的 celery 设置中添加了这个时间表。“setting.py”

CELERYBEAT_SCHEDULE = {

     'every_minute': {
         'task': 'every_minute.add',
         'schedule': crontab(minute='*/1'),
         'args': (5, 6),
     },
 }

感谢朋友们的宝贵时间。

【问题讨论】:

    标签: python django-celery celery-task celerybeat periodic-task


    【解决方案1】:

    像这样使用你的日程安排......

    CELERYBEAT_SCHEDULE = {
          'every_minute': {
            'task': 'every_minute',
          },
    }
    

    并为 celery 运行此命令

    python manage.py celeryd -BE -l info
    

    现在我的定期任务运行良好。

    【讨论】:

      猜你喜欢
      • 2018-11-28
      • 1970-01-01
      • 2013-12-05
      • 2020-09-30
      • 1970-01-01
      • 2019-02-16
      • 2017-04-28
      • 2012-01-03
      • 2016-02-04
      相关资源
      最近更新 更多