Celery-------异步任务

news/2024/7/4 23:47:58 标签: 数据库, 操作系统, 大数据
Celery-------异步任务

1.什么是Celery?
  Celery 是基于Python实现的模块, 用于执行异步定时周期任务的
  其结构的组成是由
      1.用户任务 app
      2.管道 broker 用于存储任务 官方推荐 redis rabbitMQ  / backend 用于存储任务执行结果的
      3.员工 worker

2.如何使用Celery?

   首先创建以下三个文件

from celery import Celery
import time

# 模拟用户App
my_task = Celery("task", broker="redis://127.0.0.1:6379", backend="redis://127.0.0.1:6379")


# 向应用中添加任务
@my_task.task
def my_func1(a, b):
    time.sleep(10)
    return f"my_func1 return{a}{b}"


@my_task.task
def my_func2():
    return "my_func2"


@my_task.task
def my_func3():
    return "my_func3"
c1
from c1 import my_func1

# 将任务交给Worker执行
res = my_func1.delay(2, 3)
print(res)
c2
from celery.result import AsyncResult
from c1 import my_task


# 拿出ID看任务执行情况
async_task = AsyncResult(id='bd5bd9b0-7510-406c-8340-eb3ddb74af5b', app=my_task)
# result = async_task.get()
# print(result)

# 判断异步任务是否执行成功
if async_task.successful():
    #获取异步任务的返回值
    result = async_task.get()
    print(result)
else:
    print("任务还未执行完成")
c3

   下一步启动Worker

   Linux  ----  celery worker -A s1 -l INFO

   Windows ----  - celery worker -A s1 -l INFO -P eventlet

posted on 2019-02-18 16:03 徐建0304 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/Treasuremy/p/10396119.html


http://www.niftyadmin.cn/n/1583404.html

相关文章

[转载]Linux中的网络接口及LO回环接口

转自:https://blog.csdn.net/weixin_39863747/article/details/80564358 Linux中的网络接口及LO回环接口 2018年06月04日 10:55:03 weixin_39863747 阅读数:10491、linux的网络接口之扫盲 (1)网络接口的命名 这里并不存在一定的命名规范,但网…

laravel 安装

一:laravel安装1:laravel最新版安装composer global require "laravel/installer" #使用Composer下载Laravel安装程序 laravel new XXX #创建一个laravel项目,XXX为项目名称2:laravel指定版本安装composer create-project laravel…

Java 11 究竟比 8 快了多少?

阅读本文大概需要 1.2 分钟。作者:h4cd来源:开源中国社区开源规划调度引擎 OptaPlanner 官网发布了一个 Java 11 GC 性能基准测试报告。当前使用量最大的 Java 版本是 8,所以测试者用 Java 8 与 Java 11 进行对比测试。GC 是影响 Java 性能的…

laravel在视图中使用php代码

在laravel框架中,在视图文件中使用PHP代码使用到了Blade 模板引擎,Blade 是 laravel 提供的一个简单强大的模板引擎。它不像其他流行的 PHP 模板引擎那样限制你在视图中使用原生的 PHP 代码,事实上它就是把 Blade 视图编译成原生的 PHP 代码并缓存起来。…

Docker入门(三)使用Docker Compose

Compose介绍 Compose 项目是 Docker 官方的开源项目,负责实现对 Docker 容器集群的快速编排。Compose 是一个用户定义和运行多个容器的 Docker 应用程序。在 Compose 中你可以使用 YAML 文件来配置你的应用服务。然后,只需要一个简单的命令,就…

PYTHON2.day05

1.poll方法实现IO多路复用 p poll() p.register() p.unregister() p.poll() 2.epoll方法实现IO多路复用 * 效率更高 * 触发方式更多 * 可以监控的更多IO 3.struct模块 功能:python数据转换为bytes发送 Struct(fmt)生成数据格式对象…

ACM MM 论文 | 用于行人重识别的多层相似度感知CNN网络 ...

小叽导读: 行人重识别是指给定一个摄像头下某个行人的图片,在其他摄像头对应的图片中准确地找到同一个人。行人重识别技术有十分重要的科研和实际应用价值,近来广泛应用到交通、安防等领域,对于创建平安城市、智慧城市具有重要的意…

分享几款Unity脚本插件 解决跨平台输入控制难题 ...

随着科技进步和游戏硬件品质的不断提升,游戏玩家对游戏操作的便利性有了越来越高的要求。对于Unity游戏开发人员来说,要让游戏同时适配不同的游戏平台真的不是一件容易的事情。今天千锋讲师就分享几款Unity脚本插件,帮助大家解决全平台的输入…