每30秒钟一次Django芹菜crontab - 它甚至有可能吗?
是否可以运行django芹菜crontab非常30秒在特定时间?每30秒钟一次Django芹菜crontab - 它甚至有可能吗?
只有分钟,小时和天的设置。
我有crontab的工作,但我想运行它每30秒,而不是每分钟。
或者...
是否有可能打开间隔了30秒,只为这一天的一段时间内开启的时间间隔时间表?
如果你真的需要要做到这一点,你需要迅速的解决方案,你可以采取增加: 睡眠 到脚本。 (很明显,您需要为您的脚本添加一个参数,将睡眠时间设置为0或30秒,然后将脚本两次添加到crontab,一次以0作为参数,其次为30)。
请不要对此投票!这是一个解决方案,虽然我很清楚这不是一个理想的解决方案。
Very first example they have in the documentation is ...
例:运行tasks.add任务每30秒。
from datetime import timedelta CELERYBEAT_SCHEDULE = { "runs-every-30-seconds": { "task": "tasks.add", "schedule": timedelta(seconds=30), "args": (16, 16) }, }
我需要它每30秒运行**在特定的时间**。我也遇到了他们在documentation_中的第一个例子。 – snakesNbronies
@thong:你在 – vartec
这个问题上没有说得很清楚,我也在寻找解决方案(并且遇到了这篇文章)。如果timedelta可以与w/crontab结合,会非常好。 – brizz
我会另外安排任务,使你的替代解决方案去/禁用的首要任务:
# tasks.py
from djcelery.models import PeriodicTask
@app.task
def toggle_thirty_second_task:
# you would use whatever you named your task below
thirty_second_tasks = PeriodicTask.objects.filter(name='runs-every-30-seconds')
if thirty_second_tasks:
# this returned an array, so we'll want to look at the first object
thirty_second_task = thirty_second_tasks[0]
# toggle the enabled value
thirty_second_task.enabled = not thirty_second_task.enabled
thirty_second_task.save()
然后,只需安排使用你所需要的时间一个crontab这个任务切换。或者,您可以安排一项任务打开它,一个关闭它,而不处理切换逻辑。
希望这会有所帮助。
sc
感谢您的建议! – snakesNbronies