zoukankan      html  css  js  c++  java
  • celery

    celery,处理任务的Python的模块 对任务进行分发和处理

    场景1:

    对【耗时的任务】,通过celery,将任务添加到broker(队列),然后立即给用户返回一个任务ID。
    当任务添加到broker之后,由worker去broker获取任务并处理任务。
    任务弯完成之后,再将结果放到backend中

    用户想要检查结果,提供任务ID,我们就可以去backend中去帮他查找。

    场景2:

    定时任务(定时发布/定时拍卖)

    #################################################

    环境搭建

    安装celery

    pip install celery

    在安装broker ----redis或者rabbitMQ

    安装redis

    pip istall redis
    pip instal pika # 专门操作rabbitMQ

    快速开始

    from celery import Celery
    
    task = Celery('task', broker="redis://192.168.56.131:6379/1",backend="redis://192.168.56.131:6379/2")
    
    
    @task.task
    def myfun1(x,y):
        return x+y
    
    
    @task.task
    def myfun2():
        return 'func2'
    
    
    @task.task
    def myfun3():
        return 'func3'
    s1.py
    from s1 import myfun1, myfun2, myfun3
    
    res = myfun1.delay()
    
    print(res.id)        # 任务id                # c4ac3a7e-870c-418a-a7a7-f8d3ae06cf9f
    s2.py
    from celery.result import AsyncResult
    from s1 import task
    res=AsyncResult(id='c4ac3a7e-870c-418a-a7a7-f8d3ae06cf9f', app=task)
    
    print(res.ready())        # True
    print(res.successful())   # True
    print(res.get())          # func1
    s3.py

    运行程序步骤

    1. 启动redis

    2. 启动worker

      

    先安装 pip install eventlet
    再启动 celery worker -A s1 -l info -P eventlet
    # 进入目录
    celery worker -A s1 -l info    
    
    # -l是日志【代码上线就不加了】

    在window上会报一个错

    先安装 pip install eventlet
    再启动 celery worker -A s1 -l info -P eventlet

      3. 创建代码

    python3 s2.py

      4. 查看任务状态

    python3 s3.py
  • 相关阅读:
    webpack学习(一)—— 入门
    AMD 规范
    CommonJS 规范
    webpack 故障处理
    webpack 开发环境
    webpack 插件
    webpack 配置文件
    webpack 使用
    webpack Loader
    webpack常用的插件安装命令
  • 原文地址:https://www.cnblogs.com/a438842265/p/12506264.html
Copyright © 2011-2022 走看看