电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

瀏覽:110日期:2024-09-30 14:52:40

哈嘍,今天給大家分享一篇Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù),因?yàn)樽罱彩菬o(wú)意間看到一位大佬關(guān)于這塊的文章,然后自己覺得不錯(cuò),也想學(xué)習(xí)寫一下,然后最終實(shí)現(xiàn)功能是在前端頁(yè)面統(tǒng)一管理計(jì)劃任務(wù),大家可以在admin管理頁(yè)面設(shè)置,也可以在自己寫的前端頁(yè)面刪除添加編輯,實(shí)時(shí)生效,還可以監(jiān)控這些監(jiān)控任務(wù)是否運(yùn)行成功失敗。

補(bǔ)充:如果大家對(duì)celery不熟悉的話,建議先學(xué)習(xí)celery

Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

一、安裝

1.在Linux系統(tǒng)上安裝模塊

celery (3.1.26.post2)celery-with-redis (3.0)redis (2.10.6)Django (2.1.10)django-celery (3.3.1)

2.遷移生成表

python manage.py migrate

3.查看生成的表,這幾張表是上面執(zhí)行命令后生成的

Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

二、配置

1.添加apps

INSTALLED_APPS = [ ’django.contrib.admin’, ’django.contrib.auth’, ’django.contrib.contenttypes’, ’django.contrib.sessions’, ’django.contrib.messages’, ’django.contrib.staticfiles’, ’djcelery’, #這是要添加的]

2.配置django時(shí)區(qū)

LANGUAGE_CODE = ’en-us’TIME_ZONE = ’Asia/Shanghai’USE_I18N = TrueUSE_L10N = TrueUSE_TZ = False

3.Celery配置

BROKER_URL = ’redis://localhost:6379’ #代理人CELERY_RESULT_BACKEND = ’redis://localhost:6379’ #結(jié)果存儲(chǔ)地址CELERY_ACCEPT_CONTENT = [’application/json’] #指定任務(wù)接收的內(nèi)容序列化類型CELERY_TASK_SERIALIZER = ’json’ #任務(wù)序列化方式CELERY_RESULT_SERIALIZER = ’json’ #任務(wù)結(jié)果序列化方式CELERY_TASK_RESULT_EXPIRES = 12 * 30 #超過(guò)時(shí)間CELERY_MESSAGE_COMPRESSION = ’zlib’ #是否壓縮CELERYD_CONCURRENCY = 4 #并發(fā)數(shù)默認(rèn)已CPU數(shù)量定CELERYD_PREFETCH_MULTIPLIER = 4 #celery worker 每次去redis取任務(wù)的數(shù)量CELERYD_MAX_TASKS_PER_CHILD = 3 #每個(gè)worker最多執(zhí)行3個(gè)任務(wù)就摧毀,避免內(nèi)存泄漏CELERYD_FORCE_EXECV = True #可以防止死鎖CELERY_ENABLE_UTC = False #關(guān)閉時(shí)區(qū)CELERYBEAT_SCHEDULER = ’djcelery.schedulers.DatabaseScheduler’ # 定時(shí)任務(wù)調(diào)度器

4.在你項(xiàng)目的app下面配置celery.py

import osfrom celery import Celery,platformsfrom django.conf import settingsos.environ.setdefault(’DJANGO_SETTINGS_MODULE’,’blog.settings’)app = Celery(’blog’)app.config_from_object(’django.conf:settings’)app.autodiscover_tasks(lambda: settings.INSTALLED_APPS)platforms.C_FORCE_ROOT = True@app.task(bind=True)def debug_task(self): print(’Request: {0!r}’.format(self.request))

5.配置剛才app下面的__init__.py文件

from __future__ import absolute_importfrom .celery import app as celery_app

6.在app下面創(chuàng)建一個(gè)tasks.py文件

from blog.celery import app@app.task()def get_date(x,y,s):#這里的函數(shù)留意一下,后面會(huì)用到 print(s) return x + y@app.task()def get_task(): return ’test’@app.task()def get_command_task(): return ’success’

三、啟動(dòng)

1.進(jìn)入你項(xiàng)目下面,執(zhí)行啟動(dòng)worker,Worker是執(zhí)行任務(wù)的單元,它實(shí)時(shí)監(jiān)控消息隊(duì)列,如果有任務(wù)就獲取任務(wù)并執(zhí)行它。

celery -A autoops worker -l info

2.進(jìn)入你項(xiàng)目下面,執(zhí)行啟動(dòng)beat,beat是定時(shí)把這個(gè)任務(wù)扔到隊(duì)列中

celery -A autoops beat -l info

3.啟動(dòng)你的django項(xiàng)目

python manage.py runserver 192.168.10.133:8001

4.頁(yè)面展示

4.1這個(gè)是admin頁(yè)面下的,然后我自己重新寫了,大家也可以自己寫一個(gè),admin和我自己寫的頁(yè)面實(shí)現(xiàn)的功能其實(shí)是一模一樣的。

Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

4.2.對(duì)應(yīng)admin頁(yè)面的crontabs

Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

添加周期

Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

編輯修改周期

Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

5.tasks任務(wù)

5.1.大家可以看到我添加了一個(gè)名為測(cè)試的任務(wù),每隔一分鐘執(zhí)行一次,任務(wù)模板其實(shí)就是你寫的tasks文件里面函數(shù)

Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

看一下worker進(jìn)程日志輸出

Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

四、監(jiān)控計(jì)劃任務(wù)

celery作為一個(gè)分布式異步任務(wù)隊(duì)列管理工具,通過(guò)界面化的方式來(lái)進(jìn)行管控任務(wù)的執(zhí)行狀態(tài)和查看任務(wù)執(zhí)行結(jié)果

flower作為web頁(yè)面來(lái)管理celery后臺(tái)任務(wù),和任務(wù)隊(duì)列是隔離的,也就是flower的運(yùn)行與否并不會(huì)影響到任務(wù)隊(duì)列的真正執(zhí)行,但是flower中可以通過(guò)API接口來(lái)管理celery中的任務(wù)執(zhí)行。

4.1安裝flower,監(jiān)控celery計(jì)劃任務(wù)

pip3 install flower==0.9.2 -i http://pypi.douban.com/simple --trusted-host pypi.douban.compip install tornado==5.1.1celery flower -A blog --port=5555 #進(jìn)入項(xiàng)目目錄啟動(dòng)flower

4.2打開瀏覽器,輸入http://ip:5555 查看

Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例

Name: 表示該任務(wù)的名稱,默認(rèn)規(guī)則為該函數(shù)的路徑規(guī)則,例如 {模塊名}.{文件名}.{函數(shù)名}UUID: 表示一個(gè)唯一字符串ID用于表示該任務(wù)State: 表示該任務(wù)的狀態(tài),包括: SUCCESS / FAILURE / STARTED / RECEIVEDSUCCESS 表示該任務(wù)執(zhí)行完畢且成功FAILURE 表示該任務(wù)執(zhí)行失敗STARTED 表示該任務(wù)正在執(zhí)行RECEIVED 表示該任務(wù)在worker中,只是被接收而已a(bǔ)rgs: 表示該任務(wù)的列表參數(shù)kwargs: 表示該任務(wù)的字典參數(shù)Result: 表示該任務(wù)函數(shù)的返回結(jié)果Received: 表示該任務(wù)在worker接收到的時(shí)間Started: 表示該任務(wù)在worker開始執(zhí)行的時(shí)間Runtime: 表示該任務(wù)在worker真正執(zhí)行的耗時(shí)(單位:秒)Worker: 表示該任務(wù)所在的worker名稱

總結(jié):django+celery實(shí)現(xiàn)的定時(shí)任務(wù)還是不錯(cuò)的,你可以在前端上查看管理所有定時(shí)任務(wù),實(shí)時(shí)修改生效刪除和禁用,所以有需求的話可以去試試。下次再分享啦

到此這篇關(guān)于Django+Celery實(shí)現(xiàn)動(dòng)態(tài)配置定時(shí)任務(wù)的方法示例的文章就介紹到這了,更多相關(guān)Django Celery動(dòng)態(tài)配置定時(shí)任務(wù)內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Django
相關(guān)文章:
主站蜘蛛池模板: 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 车间除尘设备,VOCs废气处理,工业涂装流水线,伸缩式喷漆房,自动喷砂房,沸石转轮浓缩吸附,机器人喷粉线-山东创杰智慧 | 上海软件开发-上海软件公司-软件外包-企业软件定制开发公司-咏熠科技 | 拉力机-拉力试验机-万能试验机-电子拉力机-拉伸试验机-剥离强度试验机-苏州皖仪实验仪器有限公司 | 济南货架定做_仓储货架生产厂_重型货架厂_仓库货架批发_济南启力仓储设备有限公司 | 太阳能发电系统-太阳能逆变器,控制器-河北沐天太阳能科技首页 | 天津仓储物流-天津电商云仓-天津云仓一件代发-博程云仓官网 | 硅胶管挤出机厂家_硅胶挤出机生产线_硅胶条挤出机_臣泽智能装备 贵州科比特-防雷公司厂家提供贵州防雷工程,防雷检测,防雷接地,防雷设备价格,防雷产品报价服务-贵州防雷检测公司 | hc22_hc22价格_hc22哈氏合金—东锜特殊钢| [官网]叛逆孩子管教_戒网瘾学校_全封闭问题青少年素质教育_新起点青少年特训学校 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 液氨泵,液化气泵-淄博「亚泰」燃气设备制造有限公司 | 带式压滤机_污泥压滤机_污泥脱水机_带式过滤机_带式压滤机厂家-河南恒磊环保设备有限公司 | 户外健身路径_小区健身器材_室外健身器材厂家_价格-浩然体育 | 定制/定做冲锋衣厂家/公司-订做/订制冲锋衣价格/费用-北京圣达信 | 铝合金线槽_铝型材加工_空调挡水板厂家-江阴炜福金属制品有限公司 | 岩棉板|岩棉复合板|聚氨酯夹芯板|岩棉夹芯板|彩钢夹芯板-江苏恒海钢结构 | 石家庄律师_石家庄刑事辩护律师_石家庄取保候审-河北万垚律师事务所 | 环保袋,无纺布袋,无纺布打孔袋,保温袋,环保袋定制,环保袋厂家,环雅包装-十七年环保袋定制厂家 | 蜗轮丝杆升降机-螺旋升降机-丝杠升降机厂家-润驰传动 | 广州中央空调回收,二手中央空调回收,旧空调回收,制冷设备回收,冷气机组回收公司-广州益夫制冷设备回收公司 | 304不锈钢无缝管_不锈钢管厂家 - 隆达钢业集团有限公司 | 黄石东方妇产医院_黄石妇科医院哪家好_黄石无痛人流医院 | 空冷器|空气冷却器|空水冷却器-无锡赛迪森机械有限公司[官网] | 炭黑吸油计_测试仪,单颗粒子硬度仪_ASTM标准炭黑自销-上海贺纳斯仪器仪表有限公司(HITEC中国办事处) | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 山东led显示屏,山东led全彩显示屏,山东LED小间距屏,临沂全彩电子屏-山东亚泰视讯传媒有限公司 | Eiafans.com_环评爱好者 环评网|环评论坛|环评报告公示网|竣工环保验收公示网|环保验收报告公示网|环保自主验收公示|环评公示网|环保公示网|注册环评工程师|环境影响评价|环评师|规划环评|环评报告|环评考试网|环评论坛 - Powered by Discuz! | 开云(中国)Kaiyun·官方网站-登录入口| 数控走心机-双主轴走心机厂家-南京建克| MOOG伺服阀维修,ATOS比例流量阀维修,伺服阀维修-上海纽顿液压设备有限公司 | 小型高低温循环试验箱-可程式高低温湿热交变试验箱-东莞市拓德环境测试设备有限公司 | 翻斗式矿车|固定式矿车|曲轨侧卸式矿车|梭式矿车|矿车配件-山东卓力矿车生产厂家 | SDG吸附剂,SDG酸气吸附剂,干式酸性气体吸收剂生产厂家,超过20年生产使用经验。 - 富莱尔环保设备公司(原名天津市武清县环保设备厂) | 气体热式流量计-定量控制流量计(空气流量计厂家)-湖北南控仪表科技有限公司 | 铝单板_铝窗花_铝单板厂家_氟碳包柱铝单板批发价格-佛山科阳金属 | ★店家乐|服装销售管理软件|服装店收银系统|内衣店鞋店进销存软件|连锁店管理软件|收银软件手机版|会员管理系统-手机版,云版,App | 活性氧化铝球|氧化铝干燥剂|分子筛干燥剂|氢氧化铝粉-淄博同心材料有限公司 | 英超直播_英超免费在线高清直播_英超视频在线观看无插件-24直播网 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | PCB厂|线路板厂|深圳线路板厂|软硬结合板厂|电路板生产厂家|线路板|深圳电路板厂家|铝基板厂家|深联电路-专业生产PCB研发制造 |