使用django 定时任务 (Django + celery + beat )
安装 django + celery + results
https://www.cnblogs.com/lanheader/p/13615772.html
安装 django-celery-beat
1 | pip install django-celery-beat |
配置 settings.py
1 2 3 4 5 | INSTALLED_APPS = [ # ... 'django_celery_results' , # 查看 celery 执行结果 'django_celery_beat' , # pip install django-celery-beat ] |
生成 Django-celery-beat 关联表
1 | python manage.py migrate |
app 目录 tasks.py 添加 task
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 | import json import requests import datetime from celery import task from django.core.cache import cache from django.core.mail import send_mail from django.utils import timezone from .models import TodayViewPage @task def task_send_dd_text(url, msg, atMoblies, atAll = "flase" ): body = { "msgtype" : "text" , "text" : { "content" : msg }, "at" : { "atMobiles" : atMoblies, "isAtAll" : atAll } } headers = { 'content-type' : 'application/json' , 'User-Agent' : 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100101 Firefox/22.0' } r = requests.post(url, headers = headers, data = json.dumps(body)) return r.text @task def task_save_view_page(): today = datetime.date.today() today_page_view = cache.get( "today_page_view_%s" % (today.day - 1 )) if today_page_view: yesterday = datetime.date.today() + datetime.timedelta(days = - 1 ) page_view_query = TodayViewPage.objects. filter (today = yesterday) if page_view_query.exists(): page_view_obj = page_view_query.first() page_view_obj.view_page = today_page_view page_view_obj.save() else : page_view_obj = TodayViewPage( today = yesterday, view_page = today_page_view ) page_view_obj.save() return "view page save success" return "view page save failed" |
管理后台配置任务
启动 celery worker
1 2 3 4 5 6 7 | # 项目根目录终端执行(joyoo 项目名称) celery -A joyoo worker -l info # 守护进程 /root/ .virtualenvs /blog/bin/celery multi start w1 -A joyoo -l info --logfile=. /celerylog .log |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了