簡體   English   中英

Python 腳本的 Crontab 每 5 分鍾一次

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM