Python~每周时间/周监视器

时间:2013-07-29 07:25:27

标签: python email timer cron

我正在尝试做的基本概念:

我希望它检查是否是下午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)

1 个答案:

答案 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