Python脚本的Crontab每5分钟一次

Python脚本的Crontab每5分钟一次,python,cron,Python,Cron,我有一个Python脚本,我想每5分钟启动一次,不管是谁启动的。我的想法是生成一个可以从存储库下载并供任何人使用的代码,因此我不想在crontab中指定任何用户,因为我不知道它的名称 我有一个Luigi管道,可以进行压缩;如果所有的要求都得到满足,它就会执行它的功能,如果没有满足,它就什么也不做。我想每5分钟运行一次管道,检查条件是否发生了变化 我已经编写了这个名为my_cron.py from crontab import CronTab class CronManager: def

我有一个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-mluigi--localscheduler--moduletasks 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\u to\u user(user=True)
。python crontab的完整手册,其中包含关于各种写入函数如何在此处可用的所有信息:

如果希望所有操作都在同一个过程中进行,那么为什么要使用cron?为什么不将while循环与sleep方法结合使用呢?如果您的脚本是用户将运行一段时间的脚本,那么您可以将while循环与sleep方法结合使用。如果这是人们希望无限期运行的东西,那么cron作业是一个好主意,下面bertilnilsson的回答应该会对您有所帮助。但是,从您当时创建cron作业的终端上看不到脚本的输出。你得在里面找。