我有功能做一些工作。代码应该重复1.3亿次。
目前,我使用Crontab每1分钟运行一次python脚本。这需要太长的时间,我希望这个python脚本在第一次运行时运行并不断重复,直到工作结束。我想在2个任务之间休息10秒。我怎么能这样做?
答案 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)
这样一旦没有更多的工作要做,循环就会退出。