每10秒运行一次Python脚本

时间:2016-01-04 10:44:07

标签: python

我有功能做一些工作。代码应该重复1.3亿次。

目前,我使用Crontab每1分钟运行一次python脚本。这需要太长的时间,我希望这个python脚本在第一次运行时运行并不断重复,直到工作结束。我想在2个任务之间休息10秒。我怎么能这样做?

5 个答案:

答案 0 :(得分:10)

尝试schedule模块

import schedule
import time

def job():
    print("I'm working...")

schedule.every(10).minutes.do(job)
schedule.every().hour.do(job)
schedule.every().day.at("10:30").do(job)

while 1:
    schedule.run_pending()
    time.sleep(1)

只需运行:pip install schedule

答案 1 :(得分:5)

我认为你应该使用这种方法:

import time

while True:
    # code goes here
    time.sleep(10)

实际上使用while True是不正确的,因为它会导致无限循环。那边应该有一个条件。但由于你没有提供足够的数据,我实际上无法做到这一点。

答案 2 :(得分:1)

一种方法可能是使用线程,每隔N秒运行一次线程。由于假设处理很轻,可能是解决方案。

t=threading.timer(10,function,[function_arguments])  #executes your_function every 10 seconds (example only)
while True:
    t.start()

请注意,此解决方案的缺点是,如果function()比seconds_parameter需要更多时间来处理,那么您可能会出现并发问题。

答案 3 :(得分:0)

您可以查看Supervisor。它使用起来并不复杂。你必须安排你的过程。

您可以在脚本中添加所需的睡眠时间。

import time

def job()
   # tasks of the script

if __name__ == '__main__':
    while True:
        job()
        time.sleep(10)

job()函数将每10秒运行一次。

答案 4 :(得分:-1)

python线程是如何工作的? 例如,如果要处理的东西是在某种列表中定义的,我建议使用以下方法:

import time
work = ["list", "of", "jobs", "here"]
for job in work:
    # do something with the job
    time.sleep(10)

这样一旦没有更多的工作要做,循环就会退出。