python,while循环,在每小时调用方法的开始

时间:2014-04-23 07:19:29

标签: python

好的,我有一个IRC机器人,当我接收python的时候,我一直在进行项目,感谢这里的所有人,当我碰壁时帮助了他们。

好吧所以我有一个while循环,我想要一种方法来查找是否已经开始新的小时,如果是的话,运行方法来更新任何设置,并确保它仍然连接到频道。我根本不知道如何去检查时间,然后调用方法。

如果这个while循环还有很多其他事情发生,所以睡一个小时并不是最好的方法。

正如我所知,如果代码被标记下来,这里有一些代码。

while 1:
    if(newhour() == 1):
        run_Method()

2 个答案:

答案 0 :(得分:2)

要回答您的问题,您可以执行以下操作:

current_hour = datetime.now().hour

while 1:
    if(datetime.now().hour != current_hour):
        run_Method()
        current_hour = datetime.now().hour

警告:这是一个非常简单的解决方案。

答案 1 :(得分:1)

不要使用无限循环,你只是浪费处理器核心来运行一个愚蠢的while循环。至少在while循环中放入一个sleep(),如果你仍然使用它来进行随意的测试代码。

Cron服务已在系统中运行以执行此任务。将脚本放在那里(或创建一个调用主脚本的脚本。)

  

$ cd /etc/cron.hourly /

让我们说proj_x.sh调用你的主脚本。创建proj_x.sh:

  

$ vi proj_x.sh

将以下代码放入proj_x.sh

#!/usr/bin/env python 
/home/user/path_to_proj_x/cron_hourly.py

使其可执行:

  

$ chmod +744 proj_x.sh

现在,/ home / user / path_to_proj_x / cron_hourly.py是带有run_method()

的主脚本