是否可以運行django芹菜crontab非常30秒在特定時間?每30秒鐘一次Django芹菜crontab - 它甚至有可能嗎?
只有分鐘,小時和天的設置。
我有crontab的工作,但我想運行它每30秒,而不是每分鐘。
或者...
是否有可能打開間隔了30秒,只爲這一天的一段時間內開啓的時間間隔時間表?
是否可以運行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