当前位置: 首页 > news >正文

上海做网站的自建站模板

上海做网站的,自建站模板,图书馆 网站建设,万网关网站三次celery中文译为芹菜,是一个分布式任务队列. 是异步的,所以能处理大量消息 最新的celery不支持windows下使用了,所以在使用pycharm安装celery模块之后,需要再安装eventlet模块才能测试运行. 一.异步任务 启动客户端: s1,s2要在项目目录下,如果在文件夹中执行,terminal输入命令的…

  celery中文译为芹菜,是一个分布式任务队列. 是异步的,所以能处理大量消息

  最新的celery不支持windows下使用了,所以在使用pycharm安装celery模块之后,需要再安装eventlet模块才能测试运行.

一.异步任务

启动客户端:

s1,s2要在项目目录下,如果在文件夹中执行,terminal输入命令的时候要-A 项目文件夹的名字

c=Celery("task",broker="redis://127.0.0.1:6379/2",backend="redis://127.0.0.1:6379/1", include="项目名.文件夹")

 

Terminal中输入

celery worker -A s1 -l info -P eventlet

 

  给定两个文件

  s1.py

from celery import Celery
import time
c=Celery("task",broker="redis://127.0.0.1:6379/2",backend="redis://127.0.0.1:6379/1")@c.task
def myfun1(a,b):return f"myfun1{a}{b}"@c.task
def myfun2():return "myfun2"@c.task
def myfun3():return "myfun3"celery worker -A s1 -l info -P eventlet

  s2.py

from s1 import myfun1,myfun2,myfun3,c
from celery.result import AsyncResult
#多个生产者
# for i in range(10):
#     s=myfun1.delay()
#     print(s)

s=myfun1.delay(10,20)
print(s.id)
r=AsyncResult(id=s.id,app=c)#获取状态
# print(r.status)
# print(r.successful())#获取值
# print(r.get())#只获取报错信息
print(r.get(propagate=False))#获取具体出错的位置
# print(r.traceback)

 

二.延时任务/定时任务

  apply_async

t=add.apply_async((1,2),countdown=5) #表示延迟5秒钟执行任务
print(t)
print(t.get())

  支持的参数

countdown : 等待一段时间再执行.
add.apply_async((2,3), countdown=5)
eta : 定义任务的开始时间.这里的时间是UTC时间,这里有坑 add.apply_async((
2,3), eta=now+tiedelta(second=10))
expires : 设置超时时间. add.apply_async((
2,3), expires=60)
retry : 定时如果任务失败后, 是否重试. add.apply_async((
2,3), retry=False)
retry_policy : 重试策略.max_retries : 最大重试次数, 默认为
3 次.interval_start : 重试等待的时间间隔秒数, 默认为 0 , 表示直接重试不等待.interval_step : 每次重试让重试间隔增加的秒数, 可以是数字或浮点数, 默认为 0.2interval_max : 重试间隔最大的秒数, 即 通过 interval_step 增大到多少秒之后, 就不在增加了, 可以是数字或者浮点数, 默认为 0.2 .

  s1.py

from celery import Celery
import time
c=Celery("task",broker="redis://127.0.0.1:6379/2",backend="redis://127.0.0.1:6379/1")@c.task
def myfun1(a,b):return f"myfun1{a}{b}"@c.task
def myfun2():return "myfun2"@c.task
def myfun3():return "myfun3"

  s2.py

from s1 import myfun1,myfun2,myfun3,c
from celery.result import AsyncResult
from datetime import timedelta#指定多长时间以后执行
# s=myfun1.apply_async((10,20),countdown=5)#第二种方式,使用utc时间
s=myfun1.apply_async((10,20),eta="utc时间")
print(s.id)
# 延时
# 重试

三.周期任务

  启动: 在Terminal中

celery beat -A s2 -l info

 

  s1.py

from celery import Celery
import time
c=Celery("task",broker="redis://127.0.0.1:6379/2",backend="redis://127.0.0.1:6379/1")@c.task
def myfun1(a,b):return f"myfun1{a}{b}"@c.task
def myfun2():return "myfun2"@c.task
def myfun3():return "myfun3"

  s2.py

from s1 import c
from celery.beat import crontab
c.conf.beat_schedule = {"name": {"task": "s1.myfun1","schedule": 3,"args": (10, 20)},"crontab": {"task": "s1.myfun1","schedule": crontab(minute=44),"args": (10, 20)}
}

 配置详解:

 from celery.schedules import crontabCELERYBEAT_SCHEDULE = {# Executes every Monday morning at 7:30 A.M'add-every-monday-morning': {'task': 'tasks.add','schedule': crontab(hour=7, minute=30, day_of_week=1),'args': (16, 16),},}

 

转载于:https://www.cnblogs.com/robertx/p/10841129.html

http://www.lbrq.cn/news/2452573.html

相关文章:

  • 无锡网站建设设计国内比较好的软文网站
  • wordpress本地打开慢google seo整站优化
  • 吉安律师网站建设企业员工培训课程有哪些
  • 郑州市建设网站谷歌seo关键词优化
  • 网站建设403怎么去推广一个产品
  • 会员卡管理系统多少钱宁波seo外包代运营
  • 网络规划设计师的意义厦门网站综合优化贵吗
  • discuz做影视网站重庆seo搜索引擎优化优与略
  • 钓鱼转转网站在线生成软件一键优化清理加速
  • 大连手机自适应网站建设服务市场推广策略 包括哪些
  • 做网站多少人公司官网开发制作
  • 寿光网站建设公司快速优化网站排名软件
  • 最大的房产网站排名app推广之家
  • 平面设计在线制作网站优化公司开始上班了
  • 顺德外贸网站建设湖南知名网络推广公司
  • 做好档案整理及网站建设seo诊断工具
  • 昆山网站制作 微博十种网络推广的方法
  • iis配置wap网站大连中小企业网络营销
  • 企业网站规划方案头条广告入口
  • 做国外网站赚钱微信营销的方法
  • 山东中讯网站建设百度导航官网
  • 住房和城乡建设部课题网站子域名在线查询
  • 三级做视频网站有哪些推广下载app赚钱
  • 基本信息型网站有哪些外包公司被辞退有补偿吗
  • 株洲seo优化公司seo服务公司怎么收费
  • 邯郸建立网站费用百度竞价关键词质量度怎么提升
  • 天津网站建设普斯泰最好看免费观看高清大全
  • 营销型网站价格河南百度关键词优化排名软件
  • 长沙建网站理企业网站推广策划
  • 注册网站的费用北京网站制作推广
  • c# openxml 打开加密 的word读取内容
  • Python 使用环境下编译 FFmpeg 及 PyAV 源码(英特尔篇)
  • Leetcode—1035. 不相交的线【中等】
  • 磁性材料如何破解服务器电源高频损耗难题?
  • Apache 消息队列分布式架构与原理
  • 226.翻转二叉树