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) )
代码如上,在脚本目录下运行rqworker
和rqscheduler -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点
网友207.*.*.129[Redmond]2022-05-26 22:57
网友157.*.*.158[Redmond]2022-05-26 22:57
网友157.*.*.146[Redmond]2022-05-26 22:55
网友40.*.*.52[美国]2022-05-26 22:48
发表评论
亲~ 评论内容是必须的哟! o(∩_∩)o
昵称
邮箱
主页
评论