我想要做的事情的基本概念是:
我要它检查它是否是下午2点到5点,周日(每2小时一次),如果是真的,它应该继续到脚本的底部(通过电子邮件我的服务器状态),并在36小时内重新设置计时器/它正在进行搜索,看看周日是否在下午2点到5点。
我已经看到了几种不同的计时器方法,但我找不到一种主动扫描的方法,以确定是否是指定的时间(在这种情况下,最好是每两个小时检查一次星期日的下午2点到5点)。
任何帮助都是非常感谢的,Jame的
编辑:得到输出信息后,我重新发布,只需添加时间模块lol :P
到目前为止,我还没有实现.py的启动部分,但是当我确定的时候,我会更新post。
import datetime
import croniter
import crontab
import time
c = croniter.croniter("0 20,21,22 * * SUN")
next_due_date = c.get_next(datetime.datetime)
print c.get_next(datetime.datetime)
while True:
now = datetime.datetime.now()
if now > next_due_date:
do_something()
time.sleep(60 * 60 * 36)
else:
time.sleep(60 * 60 * 2)Edit2:我试图添加文件路径:导致密钥错误
import datetime
import croniter
import crontab
import time
c = croniter.croniter("0 20,21,22 * * SUN ./line.py")
next_due_date = c.get_next(datetime.datetime)
print c.get_next(datetime.datetime)
while True:
now = datetime.datetime.now()
if now > next_due_date:
do_something()
time.sleep(60 * 60 * 36)
else:
time.sleep(60 * 60 * 2)发布于 2013-07-29 07:42:25
我不太清楚您想要做什么,然而,据我所知,使用cron任务似乎是足够的。
你想在星期天下午2点开始你的剧本吗?如果是,那么像这样的crontab就可以做到:0 14 * * SUN ./my_script.py
如果你想检查下个星期天下午2点到5点的时间,你可以用croniter模块解决一些问题。下面是一个示例:
c = croniter.croniter("0 14,15,16 * * SUN")
print c.get_next(datetime.datetime) # will output 2013-08-04 14:00:00在知道下个星期日下午2点的时间之后,您可以编写这样的循环:
c = croniter.croniter("0 14 * * SUN")
while True:
now = datetime.datetime.now()
if now > next_due_date:
do_something()
next_due_date = c.get_next(datetime.datetime)
time.sleep(60 * 60 * 36)
else:
time.sleep(60 * 60 * 2) # sleep 2 hourshttps://stackoverflow.com/questions/17918223
复制相似问题