[英]Crontab for Python script every 5 minutes
我有一個 Python 腳本,盡管用戶啟動了它,但我想每 5 分鍾啟動一次。 我的想法是生成一個可以從存儲庫下載並可供任何人使用的代碼,所以我不想在 crontab 中指定任何用戶,因為我不知道它的名字是什么。
我有一個 Luigi 管道,可以進行測試; 如果滿足所有要求,則執行其功能,如果不滿足,則不執行任何操作。 我想每 5 分鍾運行一次管道以檢查條件是否已更改。
我寫了這個名為my_cron.py
腳本
from crontab import CronTab
class CronManager:
def __init__(self):
self.cron = CronTab()
def add_minutely(self, command, interval, environment=None):
cron_job = self.cron.new(command=command)
cron_job.minute.every(interval)
cron_job.enable()
self.cron.write('my_cron.tab')
if __name__ == '__main__':
my_cron = CronManager()
command = "python -m luigi --local-scheduler --module tasks Main"
my_cron.add_minutely(command, 5)
我想每 5 分鍾運行一次的腳本是python -m luigi --local-scheduler --module tasks Main
,它與my_cron.py
位於同一文件夾中,我希望在運行python my_cron.py
它會顯示在同一個控制台,我每 5 分鍾啟動一次任務的結果。
但是,當我啟動my_cron.py
它只是完成了這個過程,我在my_cron.tab
上得到了這個
*/5 * * * * python -m luigi --local-scheduler --module tasks Main
這看起來像預期的行為,您是否希望系統的 cron 進程選擇並使用 crontab? 如果是這樣,您的新 crontab 文件需要保存在系統將處理的地方。 當然,如果系統上沒有活動的 cron 進程,則什么也不會發生。
在 Unix 系統上,您可以使用self.cron.write_to_user(user=True)
。 python-crontab 的完整手冊,其中包含有關各種寫入函數如何可用的所有信息: https : //pypi.org/project/python-crontab/
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.