我正在尝试做的基本概念:
我希望它检查是否是下午2点至5点和周日{每隔{2小时} 如果是,它应该继续到脚本的底部(通过电子邮件发送给我的服务器状态),并在36小时内重置计时器/它的主动搜索以查看它是否在周日下午2-5点
我已经看到了一些不同的定时器方法,但是我找不到一个主动扫描的方法来查看它是否是指定的时间(在这种情况下,如果它检查是否是下午2点至5点它是理想的星期天每2个小时)
任何帮助都会受到极大的赞赏 尊敬, Jame的
编辑: 我重新发布后立即输出信息,只需添加时间模块lol:P
脚本到目前为止我还没有实现.py启动部分,但是当我开始这样做的时候会更新帖子。
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:我尝试添加文件路径:导致keyerror
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)
答案 0 :(得分:1)
我不确定你想做什么,但据我所知,似乎使用cron任务就足够了。
你想在星期天下午2点开始你的剧本吗?如果是,那么像这样的crontab可以:0 14 * * SUN ./my_script.py
如果您想查看下一个星期日2-5PM的时间,您可以使用croniter
模块解决问题。这是一个例子:
c = croniter.croniter("0 14,15,16 * * SUN")
print c.get_next(datetime.datetime) # will output 2013-08-04 14:00:00
知道下周日2PM的时间,您可以写一个这样的循环:
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 hours