celery: 定时任务
一,mytask.py代码:
from celery import Celery
from datetime import timedelta
celeryApp = Celery('celeryapp', broker='redis://localhost:6379/0', backend='redis://localhost:6379/1')
celeryApp.conf.beat_schedule = {
'add-every-30-seconds': {
'task': 'mytask.my_task1',
'schedule': timedelta(seconds=30), # 每30秒执行一次
'args': (16, 16),
},
}
# 设置周期性任务
@celeryApp.task
def my_task1(a, b):
print("my_task1任务正在执行....")
return a + b
if __name__=="__main__":
celeryApp.start()
二,测试 效果 :
运行:
$ celery -A mytask worker --loglevel=info --beat
效果:
[2026-01-25 13:04:25,078: INFO/Beat] Scheduler: Sending due task add-every-30-seconds (mytask.my_task1)
[2026-01-25 13:04:25,081: INFO/MainProcess] Task mytask.my_task1[4cac5697-5486-4076-9789-1eb7835e23cc] received
[2026-01-25 13:04:25,082: WARNING/ForkPoolWorker-2] my_task1任务正在执行....
[2026-01-25 13:04:25,083: INFO/ForkPoolWorker-2] Task mytask.my_task1[4cac5697-5486-4076-9789-1eb7835e23cc] succeeded in 0.0011222869998164242s: 32
浙公网安备 33010602011771号