好的,我有一个IRC机器人,当我接收python的时候,我一直在进行项目,感谢这里的所有人,当我碰壁时帮助了他们。
好吧所以我有一个while循环,我想要一种方法来查找是否已经开始新的小时,如果是的话,运行方法来更新任何设置,并确保它仍然连接到频道。我根本不知道如何去检查时间,然后调用方法。
如果这个while循环还有很多其他事情发生,所以睡一个小时并不是最好的方法。
正如我所知,如果代码被标记下来,这里有一些代码。
while 1:
if(newhour() == 1):
run_Method()
答案 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()