定时调度的问题
1.前言
最近在项目中做一个定时统计数据的功能,如何做到定时调用统计方法呢?
在网上看了一下,大致有三种方式
1. [编写Django Command ,用cron进行定时调度](http://www.cnblogs.com/linjiqin/p/3965046.html)
2. 第一种方式的升级版实现[django-crontab实现Django定时任务](http://www.zhidaow.com/post/django-crontab)
3. 编写Django Command 然后rq_scheduler定时把任务提交给队列,由worker进行处理
这里我选用的是第三种方式
2.编写Django Command 然后rq_scheduler定时把任务提交给队列,由worker进行处理
工作原理
*Putting a job in the scheduler
*Running a scheduler that will move scheduled jobs into queues when the time comes
*RQ Scheduler comes with a script rqscheduler that runs a scheduler process that polls Redis once every minute and move scheduled jobs to the relevant queues when they need to be executed:
scheduler.schedule( |
##使用方法
###初始化:
In [1]: from analytics.etl import analytics_etl |
- 安装rq_scheduler
pip install rq_scheduler - 编写测试command scheduler_command.py
class Command(BaseCommand): |
###调用job
python manage.py scheduler_command --settings=local_settings |
###启动rqscheduler
rqscheduler执行一次就OK |
启动一个rqworker default
启动一个工作者, |
###查看当前有多少job:
import django_rq |
###取消job
scheduler.cancel(job)