Python 3.x 芹菜节拍计划程序未使用crontab按预期计划任务

Python 3.x 芹菜节拍计划程序未使用crontab按预期计划任务,python-3.x,cron,celery,celerybeat,Python 3.x,Cron,Celery,Celerybeat,芹菜节拍没有使用crontab按预期安排任务。它的时间表是随机的。有时它每一分钟安排一次。有时每两分钟一次,等等。 配置的时间“schedule”:crontab(hour='*/1')与任务发送到工作者的时间之间没有关系 不知道这里怎么了 这是我的芹菜测试: from kombu import Queue, Exchange from celery import Celery, shared_task, group, chord from celery.schedules import cro

芹菜节拍没有使用crontab按预期安排任务。它的时间表是随机的。有时它每一分钟安排一次。有时每两分钟一次,等等。 配置的时间
“schedule”:crontab(hour='*/1')
与任务发送到工作者的时间之间没有关系

不知道这里怎么了

这是我的芹菜测试:

from kombu import Queue, Exchange
from celery import Celery, shared_task, group, chord
from celery.schedules import crontab

app = Celery('celery_demo',
             broker='amqp://abcduser:abcdpassword@localhost/abcd_vhost',
             backend='rpc://',
             include=['celery_demo.tasks'])

app.conf.beat_schedule = {
    "trigger-call_publisher": {
        "task": "celery_demo.tasks.call_publisher",
        "schedule": crontab(hour='*/1')
以下是my tasks.py:

import sys

sys.path.append("..")

from celery_demo.celery_test import app

@app.task
def call_publisher():
    print("Say Hello")

if __name__ == '__main__':
    call_publisher.delay()

    }
}
以下是每分钟发送一次任务的输出:


我认为让它每小时运行一次,你可以使用分钟:

crontab(minute='*/60')
或小时+分钟:

crontab(minute=0, hour='*/1')

我认为dor让它每小时运行一次你要么用一分钟:

crontab(minute='*/60')
或小时+分钟:

crontab(minute=0, hour='*/1')

我感到困惑——日志清楚地表明,节拍每分钟都在发送任务。这不是您想要的吗?我已将其设置为每一小时运行一次
“schedule”:crontab(hour='*/1')
。但它每一分钟运行一次(我很困惑-日志清楚地显示beat每分钟都发送任务。这不是你想要的吗?我已将其设置为每一小时运行一次
“schedule”:crontab(hour='*/1')
。但它每一分钟运行一次(这一次在调度方面几乎没有改进。但它仍然没有按照配置每一小时调度一次任务。
[2020-10-19 06:13:09387:INFO/MainProcess]beat:Starting…[2020-10-19 06:13:09442:INFO/MainProcess]调度程序:发送到期任务触发器调用发布程序(芹菜演示任务调用发布程序)[2020-10-19 07:00:00001:INFO/MainProcess]调度程序:发送到期任务触发器调用发布服务器(celery\u demo.tasks.call\u publisher)
这里第一个任务在
[2020-10-19 06:13:09442
发送,第二个任务在
[2020-10-19 07:00:00001
。两个任务之间大约有46分钟的间隔。@owgitt是06:13你重新开始节拍的时间?07:00之后的下一个任务呢?是08:00吗?06:13你重新开始节拍的时间-是的。而这个时间本身就是第一个任务被发送的时间。下一个任务(第二个任务)是7:00发送的我是这么说的“开始”任务不应该运行,我想它与您设置的某些配置有关。我想问的是第三个问题,是在08:00吗?如果是这样,问题只出现在beat Restart。这次调度几乎没有改进。但它仍然没有按照配置每小时调度一次任务。
[2020-10-19 06:13:09387:INFO/MainProcess]节拍:开始…[2020-10-19 06:13:09442:INFO/MainProcess]调度程序:发送到期任务触发器调用发布程序(celery\u demo.tasks.call\u publisher)[2020-10-19 07:00:00001:INFO/MainProcess]调度程序:发送到期任务触发器调用发布程序(celery\u demo.tasks.call\u publisher)
这里第一个任务在
[2020-10-19 06:13:09442]发送,第二个任务在
[2020-10-19 07:00:00001
。两个任务之间大约有46分钟的间隔。@owgitt是06:13你重新开始节拍的时间?07:00之后的下一个任务呢?是08:00吗?06:13你重新开始节拍的时间-是的。而这个时间本身就是第一个任务被发送的时间。下一个任务(第二个任务)是在7:00发送的。这就是我要说的。“启动”任务不应该运行,我想它与您设置的某些配置有关。我问的是第三个,是在08:00吗?如果是,问题只是在重新启动时