需要程序在一定的时间后继续重新启动

问题描述:

我需要此程序在15分钟后重新启动,并重新执行其过程。我需要它在一个计时器上,所以它的示例动态启动15分钟,没有任何用户输入,它只会重置并重新启动并在Python shell中重新启动。需要程序在一定的时间后继续重新启动

from twython import Twython, TwythonError 
import time 
import random 
from auth import (
    consumer_key, 
    consumer_secret, 
    access_token, 
    access_token_secret 
) 

twitter = Twython(
    consumer_key, 
    consumer_secret, 
    access_token, 
    access_token_secret 
) 
start_time = time.time() 
search_results = twitter.search(q="lol", count=100) 
try: 
    for tweet in search_results["statuses"]: 
     try: 
      st= tweet["entities"]["user_mentions"] 
      if st != []: 
       screen_name = st[0]["screen_name"] 
       twitter.create_friendship(screen_name = st[0]["screen_name"]) 
       twitter.retweet(id = tweet["id_str"]) 

       for name in bot_detectors: 
        if name == screen_name: 
         try: 
          twitter.destroy_friendship(screen_name = st[0]["screen_name"]) 
          twitter.destroy_status(id = tweet["id_str"]) 
          twitter.create_block(screen_name=name) 

         except TwythonError as e: 
          print (e) 
+2

你为什么不考虑类似'cron'或'Windows Scheduler'?那些更灵活,你可以专注于业务逻辑? –

+1

有关cron的更多详细信息,您绝对应该使用而不是依赖python计时器。 http://*.com/questions/15033542/crontab-formatting-every-15-minutes –

除非你有非常具体的要求,这始终是更好地把重新启动脚本本身之外的脚本逻辑:

  • 脚本更易于编写和测试(单官能度)
  • 如果(由于任何原因包括程序错误)脚本崩溃它将在下次启动时自动重启
  • 如果(由于任何原因包括程序错误)脚本在长时间使用越来越多的资源,它将释放前夕rithing每个站和会做每一个新的运行
  • separation of concern被generaly看作是最佳实践

在类Unix系统中的一个新的开始,你会发现cron和crontab中,在Windows任务调度程序,所以它已经开箱即用,没有任何发展。