python elif可以单独使用_Celery在python中的单独使用

简单使用:

1.目录结构

-app_task.py

-worker.py

-result.py

2.在需要进行异步执行的文件app_task.py中导入celery,并实例化出一个对象,传入消息中间和数据存储配置参数

broker = 'redis://127.0.0.1:6379/1' #使用redis第一个库

backend = 'redis://127.0.0.1:6379/2' #使用redis第二个库

cel = celery.Celery('test',broker=broker,backend=backend)

3.在需要进行异步执行的函数上添加装饰器

@cle.taskdefadd(x,y):return x+y

4.新建文件worker.py用来添加任务

from app_task importadd

result= add.delay(4,2)print(result) #此结果不是add执行结果,而是放入消息队列中的一个任务id

5.新建文件result.py用来接收结果

from celery.result importAsyncResultfrom app_task importcel#2e76b24d-364f-46b7-a0eb-f69f663dfb0d

async1 = AsyncResult(id="56db7832-d0f4-4b9b-ba92-4fb08d0f9592", app=cel) #id处放置消息队列中任务的id

if async1.successful(): #判断执行任务成功

result =async1.get()print(result)#result.forget() # 将结果删除

elifasync1.failed():print('执行失败')elif async1.status == 'PENDING':print('任务等待中被执行')elif async1.status == 'RETRY':print('任务异常后正在重试')elif async1.status == 'STARTED':print('任务已经开始被执行')

6.添加任务+启动工人+查看结果

1.运行worker.py

2.终端中输入命令:celery worker -A app_task -l info -P eventlet # 其中app_task为配置参数的文件名

3.运行result.py查看结果

多任务使用:

1.目录结构,将简单使用中的app_task改为一个celery_task文件夹,其中放至少两个文件:celery.py(名字固定)/task1.py(方具体任务的文件)/根据需求放置其他任务文件

-celery_task

-celery.py # 配置参数

-task1.py # 任务文件,根据需求添加

-task2.py

...

-worker.py # 添加任务

-result.py # 查看结果

2.在任务文件task1.py中导入cel,并以装饰器形式加在函数上

from .celery importcel

@cel.taskdefmul(x,y):return x*y

3.celery.py中配置参数

from celery importCelery

cel=Celery('celery_demo',

backend= 'redis://127.0.0.1:6379/1',

broker= 'redis://127.0.0.1:6379/2',

include=['celery_task.task1','celery_task.task2']

)

cel.conf.timezone= 'Asia/Shanghai'cel.conf.enable_utc= False

4.worker.py和简单使用中的相同

5.result.py与简单使用中的相同

6.添加任务+启动工人+查看结果

1.运行worker.py

2.终端中输入命令:celery worker -A celery_task -l info -P eventlet    # 其中celery_task为文件夹名

3.运行result.py查看结果

延时任务:

1.目录结构

-celery_task

-celery.py

-task1.py

-task2.py

...

-worker.py

-result.py

2.task1.py与多任务相同

3.celery.py与多任务相同

4.worker.py中将传入的时间改为指定时间

ctime = datetime.now() #当前时间

utc_time = datetime.utcfromtimestamp(ctime.timestamp()) #转成本地时间

time_delta = timedelta(seconds=30) #设置延时30s

task_time = utc_time+time_delta #设定时间点为30s后

ret1 = add.apply_async(args=[2,3],eta=task_time)

5.result.py与简单使用中的相同

6.与多任务相同

定时任务:

1.目录结构,去掉worker.py,添加任务变为在终端输入命令

-celery.py

-celery.py

-task1.py

-task2.py

...

-result.py

2.task1.py与多任务相同

3.celery.py中与定时任务相比,添加下面参数

1.设定时间间隔,循环执行

cel.conf.beat_schedule ={'add-every-10-seconds':{ #名字随意起

'task': 'celery_task.task1.mul', #指定要执行的任务

'schedule': timedelta(seconds=2), #指定时间间隔

'args': (2,3) #传入参数

}

}

2.指定年月日具体时间,循环执行

from celery.schedules importcrontab

cel.conf.beat_schedule={'add-every-10-seconds':{'task': 'celery_task.task1.mul','schedule': crontab(minute=28,hour=2,day_of_month=23,month_of_year=6),'args': (6,3)

}

}

4.没有worker.py

5.result.py与简单使用中的相同

6.添加任务+启动工人+查看结果

1.启动一个终端,输入:celery beat -A celery_task -l info # celery_task为文件夹名

2.再启动一个终端,输入:celery worker -A celery_task -l info -P eventlet

3.运行result.py查看结果

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/550707.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Eclipse配置自动补齐键为alt+/

在顶栏找到window,选择下拉栏中的Preferences 在Preferences的搜索框输入keys,在右边的候选区域找到Content Assist,在Binding中输入Alt/ Apply and Close即可

python高级属性 用法 编程_python高级编程之面向对象高级编程

1 面向对象编程面向对象这节比较简单,就稍微总结几个特殊的点。特殊方法__init__前后分别有两个下划线,__init__方法的第一个参数永远是self,表示创建的实例本身,因此,在__init__方法内部,就可以把各种属性…

1命名规则 sentinel_Alibaba Sentinel 规则参数总结

本文总结了Alibaba Sentinel各种规则的参数。基于Sentinel 1.6.2编写,未来如果本文不再适用,可自行点击每一节 参考 一览的链接前往查看如何配置。一、流控规则1.1 配置1.2 参数Field说明默认值resource资源名,资源名是限流规则的作用对象cou…

java文件读写类及其用法介绍

见链接:转载于zhangbinu的博客

公共界面_公共建筑东营市档案馆能耗计量分析系统

摘要:本文介绍东营市档案馆能耗管理系统,采用智能电力仪表采集配电现场的各种电参量,仪表就地组网后通过现场总线通讯并远传至后台,通过Acrel-5000型建筑能耗监测系统实现配电回路用电的监测分析。关键词:大型公共建筑…

IDEA、pycharm白嫖攻略

本方法仅适用于高校大学生 JetBrains系列下的idea、pycharm优秀的代码提示让人爱不释手,但是相比较eclipse,idea的巨大缺点就是:要收费。 我看到身边的许多同学为了使用idea、pycharm而到处搜索激活码或者破解软件 ,但是激活码还是…

com.alibaba.easyexcel导出指定的列_使用Python导入导出Excel表格

这篇文章的目的是讲解使用python导入导出Excel表格,目前还不涉及数据处理,主要实现为数据的展示。第一步,准备材料python3.8的安装包一个Excel表格第二步,安装软件python可以采用默认安装的方式,安装完之后把python和p…

2021-08-10 HDFS Web报错Couldn‘t preview the file.

在查看文件内容时&#xff0c;在红框位置出现报错“Couldn’t preview the file” 解决方法 第一步&#xff1a;修改hdfs-site.xml&#xff0c;添加配置信息 <property><name>dfs.webhdfs.enabled</name><value>true</value> </property&…

2021-08-10 maven配置阿里云仓库

方式一&#xff1a;全局配置 可以添加阿里云的镜像到maven的setting.xml配置中&#xff0c;这样就不需要每次在pom中&#xff0c;添加镜像仓库的配置&#xff0c;在mirrors节点下面添加子节点&#xff1a; <mirror><id>nexus-aliyun</id><mirrorOf>ce…

大橙子_橙子皮养花太棒了,酸性大,肥力足,比花肥强10倍

随着社会的不断发展&#xff0c;现在越来越多的人都喜欢在家里养花。在家里养花&#xff0c;可以装点居室&#xff0c;让我们家里更温馨漂亮&#xff0c;而且我们在养花的时候也能培养我们的兴趣&#xff0c;也有利于我们的身心健康。其实养花最主要的就是要补充充足的养分&…

hive启动报错:Exception in thread “main“ java.lang.NoSuchMethodError: com.google.common.base.Precondition

报错如下 Exception in thread "main" java.lang.NoSuchMethodError: com.google.common.base.Preconditions.checkArgument(ZLjava/lang/String;Ljava/lang/Object;)V at org.apache.hadoop.conf.Configuration.set(Configuration.java:1380) ... at org.apache.ha…

adaptivitypara设置选0还是1_喝牛奶,选全脂还是低脂?家里人能不能喝同1种牛奶?...

年龄大的人&#xff0c;还记得&#xff0c;当年&#xff0c;牛奶是限量供应的&#xff0c;家里有婴儿或病人&#xff0c;才能得到1张卡&#xff0c;每天按时在街边等候&#xff0c;凭卡可以买到半斤掺水的牛奶。牛奶&#xff0c;被誉为接近完善的食品&#xff0c;其中所含的蛋白…

Centos8修改mysql密码

第一步&#xff1a;修改配置文件免密码登录mysql 进入文件&#xff1a;vi /etc/my.cnf文件末尾添加skip-grant-tables重启mysql 第二步: 免密码登录mysql 输入mysql登录&#xff1a; 进入数据库&#xff0c;输入&#xff1a; use mysql&#xff1b;查看root用户信息&#xf…

aop的实现原理_非Spring管理Bean如何添加AOP呢?

前几天有个朋友问了一个问题&#xff0c;觉得可以给大家分享一下。问题如下图归其根本这是个历史项目&#xff0c;里面有很多的类并没有交给spring管理&#xff0c;但现在需要统一添加日志。面对这样的问题&#xff0c;其实只要了解AOP的原理&#xff0c;就会有多种方法。AOP都…

什么从什么写短句_2020抖音文案短句:爱情、励志、伤感合集,值得收藏!

视频火不火&#xff0c;一半看文案&#xff01;想知道爆款视频的文案都是什么吗&#xff1f;想知道爆款文案的套路吗&#xff1f;今天&#xff0c;我就给大家整理了近期抖音爆款短视频的文案——爱情、励志、伤感短句&#xff0c;句句深入人心&#xff0c;赶紧来看看吧&#xf…

插入数据的时候出现错误:Error during job, obtaining debugging information…

插入数据的时候出现错误:Error during job, obtaining debugging information… 原因&#xff1a; Javaf堆内存不足 解决办法 修改为本地模式 set hive.exec.mode.local.autotrue;

win10更新失败,怎么删除临时文件下面的更新

首先按下WINR&#xff0c;然后在运行中输入services.msc 回车在服务中找到Windows update服务&#xff0c;右键点击停止然后打开文件夹C:\Windows\SoftwareDistribution\DownloadSoftwareDistribution\Download文件夹下就是更新后留下来的更新文件了&#xff0c;全部删除吧删除…

::在sql语句中是什么写法_不懂就问:SQL 语句中 where 条件后 写上1=1 是什么意思...

程序员在编程过程中&#xff0c;经常会在代码中使用到“where 11”&#xff0c;这是为什么呢&#xff1f;SQL注入初次看到这种写法的同学肯定很纳闷&#xff0c;加不加where 11&#xff0c;查询不都一样吗&#xff1f;例如&#xff1a;select * from customers; 与 select * fr…

U盘:对于目标文件系统,文件过大放不到u盘里

问题描述&#xff1a;从电脑复制粘贴一个11G的压缩包时&#xff0c;提示"对于目标文件系统&#xff0c;文件过大放不到u盘里" 原因&#xff1a;U盘的文件格式为FAT32&#xff0c;转为NTFS格式才支持大文件复制。 解决方法&#xff1a; 格式化为NTFS格式 U盘卷符名为…

django 集成个推_持续集成CircleCI vs Travis CI vs Jenkins

Continuous Integration. CircleCI vs Travis CI vs Jenkins​hackernoon.com持续集成(CI)的定义及其主要目标持续集成(CI)是一种软件开发实践&#xff0c;它基于将代码频繁集成到共享代码仓中。 然后通过自动构建(automated build)验证每个签入(Check-In)。持续集成(CI)的主要…