阿小信大人的头像
做你说过的,说你能做的 阿小信大人

使用rqscheduler定时执行任务2014-09-03 03:27

requirements: pip install redis rq rq-scheduler

rq是python的一个用redis做的队列,简单实用。使用rq-scheduler可以定时的周期性执行某个函数。具体可以参考: https://github.com/nvie/rq https://github.com/ui/rq-scheduler

不过文档上可能有误,开始时间必须使用utc时间,不然无法运行,特此记录下。

main.py

from schedules import schedule

schedule()

schedules.py

from rq import use_connection
from datetime import datetime
from rq_scheduler import Scheduler

use_connection()
scheduler = Scheduler()

def pt():
    print datetime.now().second


def schedule():
    scheduler.schedule(
        scheduled_time=datetime.utcnow(), # Time for first execution
        func=pt,                     # Function to be queued
        interval=2,                   # Time before the function is called again, in seconds
        repeat=None                      # Repeat this number of times (None means repeat forever)
    )

代码如上,在脚本目录下运行rqworkerrqscheduler -i 2命令,然后通过执行python main.py就会每隔2秒打印一次当前的秒数。

如果使用enqueue_at等,时间也必须使用UTC,eg:

date = datetime.today()
scheduler.enqueue_at(
    datetime(date.year, date.month, date.day, 23-8, 59),  # UTC hour
    pt
)

23-8是我们这儿晚上11点

如果您觉得从我的分享中得到了帮助,并且希望我的博客持续发展下去,请点击支付宝捐赠,谢谢!

若非特别声明,文章均为阿小信的个人笔记,转载请注明出处。文章如有侵权内容,请联系我,我会及时删除。

#Python#  
分享到:
阅读[2726] 评论[0]

你可能也感兴趣的文章推荐

本文最近访客

网友54.*.*.152[弗吉尼亚州]2018-05-21 05:37
网友66.*.*.81[美国]2018-05-21 05:32
网友66.*.*.79[美国]2018-05-21 05:21
网友40.*.*.83[美国]2018-05-21 05:19

发表评论