芹菜在 5.00 秒内醒来

问题描述

为什么 Celery beat 总是在 5 秒内醒来,而我没有任何已启用的任务?

有没有办法将这段时间从 5s 更改为 10m?

日志:

web_1      | [2021-03-03 09:43:11,936: INFO/Beat] DatabaseScheduler: Schedule changed.
web_1      | [2021-03-03 09:43:11,936: DEBUG/Beat] Writing entries...
web_1      | [2021-03-03 09:43:11,969: DEBUG/Beat] DatabaseScheduler: Fetching database schedule
web_1      | [2021-03-03 09:43:11,974: DEBUG/Beat] Current schedule:
web_1      | 
web_1      | [2021-03-03 09:43:12,013: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:43:17,025: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:43:22,033: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:43:27,044: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:43:32,059: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:43:37,068: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:43:42,080: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:43:47,095: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:43:52,108: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:43:57,121: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:02,131: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:07,140: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:12,147: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:17,165: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:22,177: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:27,199: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:32,205: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:37,223: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:42,230: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:47,242: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:52,254: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:44:57,262: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:45:02,276: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:45:07,289: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:45:12,304: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:45:17,313: DEBUG/Beat] beat: Waking up in 5.00 seconds.
web_1      | [2021-03-03 09:45:22,326: DEBUG/Beat] beat: Waking up in 5.00 seconds.

我正在使用:

celery==5.0.5
django-celery-beat==2.2.0
django-redis==4.11.0
redis==3.2.0

这就是我开始 Celery 的方式:

celery -A project worker --beat --scheduler django --concurrency=2 -Ofair --loglevel=debug --task-events

我知道问题可能与时区有关,但我在 TZ 使用 UTC。

CELERY_IGnorE_RESULT = False
CELERY_STORE_ERRORS_EVEN_IF_IGnorED = True
CELERY_ACCEPT_CONTENT = ['application/json']
CELERY_TASK_SERIALIZER = 'json'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_ENABLE_UTC = True 
CELERY_TIMEZONE = 'UTC' 
CELERY_BEAT_SCHEDULER = 'django_celery_beat.schedulers:DatabaseScheduler'
CELERY_TASK_TRACK_STARTED = True
broKER_CONNECTION_TIMEOUT = 15
# broKER_HEARTBEAT = 10 
# broKER_HEARTBEAT_CHECKRATE = 2.0
CELERY_ACKS_LATE = True

知道如何解决这个问题吗?

解决方法

Celery Beat 必须定期运行才能安排工作。这不是问题,并且不会占用太多资源。您看到这种情况的唯一原因是日志记录设置为“调试”级别,这可能会有些嘈杂。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...