Django-Q设置Django调度和定时任务
场景说明:
Django项目需要实现每30秒刷新一次首页信息
1.安装库
pip install django-q
2.添加app
INSTALLED_APPS = [ # ... 其他应用程序 ... 'django_q', ]
3.配置
Q_CLUSTER={ 'name':'project', 'workers':4, 'recycle':500, 'timeout':60, 'compress':True, 'cpu_affinity':1, 'save_limit':250, 'queue_limit':500, 'label':'DjangoQ', 'redis':{ 'host':'127.0.0.1', 'port':6379, 'db':0, } }
4.定义一个任务,例如打印一条消息(异步执行)
# tasks.py from django_q.tasks import async_task def print_message(): print("This is a message from Django - Q") async_task(print_message)
5.定时任务示例
from django_q.models import Schedule from django_q.tasks import async_task import time def my_task(): print("This task is executed every 30 seconds.") # 这里可以添加实际要执行的任务逻辑,比如更新数据、发送通知等 # 创建定时任务 Schedule.objects.create( func='your_app_name.q_tasks.my_task', # 替换为你的应用名称和任务函数所在的模块路径 schedule_type=Schedule.MINUTES, minutes=0.5, # 因为0.5分钟就是30秒 repeats=-1 # -1表示无限重复执行任务 )
6.启动Django-Q
import qcluster
qcluster.start()
7.启动项目,启动后队列也开始执行
分类:
Django
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· 提示词工程——AI应用必不可少的技术
· 字符编码:从基础到乱码解决
· 地球OL攻略 —— 某应届生求职总结