修改芹菜排架数据库

2024-04-18 22:34:17 发布

您现在位置:Python中文网/ 问答频道 /正文

我试着在运行时用芹菜来安排周期性任务。你知道吗

这是一个相关的older questionOne of the answers在这个问题中提到,从Celery版本4.1.0(我使用的是4.3.0)开始,现在可以在运行时添加任务,但我无法实现这一点。你知道吗

我正在修改shelve数据库,而芹菜节拍正在运行(甚至当它没有运行时)。下面是代码:

import shelve
from celery.beat import ScheduleEntry
from celery.schedules import schedule

s = schedule(5, app=app)
entry = ScheduleEntry("Test Task", "proj.tasks.my_task", args=("arg1", "arg2"), schedule=s)
db = shelve.open("celerybeat-schedule", writeback=True)
db["entries"]["Test Task"] = entry
db.close()

这已成功存储在搁置文件中。以下是搁置文件的entries字段:

{'Test Task': <ScheduleEntry: Test Task proj.tasks.my_task('arg1', 'arg2') <freq: 5.00 seconds>}

但是一旦芹菜节拍开始,它就会重写这个文件并使entries字段成为空的dict。我错过什么了吗?或者如果不使用Django或类似的调度器,这是不可能的?你知道吗


Tags: 文件fromtestimportapptaskdbshelve