• celery 基础


    zzy_celery

    # 1. app 任务 创建或者发布任务
    # 2. broker backend
    # 3.Worker
    
    from celery import Celery
    import time
    my_task = Celery('task', broker='redis://39.105.68.23',
                     backend='redis://39.105.168.23:6379')
    
    
    @my_task.task
    def my_func1(a, b):
        time.sleep(1)
        return f'my_func1 return{a}{b}'
    
    
    @my_task.task
    def ny_func2():
        return 'my_func2'
    
    
    @my_task.task
    def my_func3():
        return 'my_func3'
    
    
    from .s1 import my_func1
    
    res = my_func1.delay(2, 3)
    print(res)
    
    
    
    from celery.result import AsyncResult
    from .s1 import my_task
    
    # 异步获取任务返回值
    async_task = AsyncResult(id='8b45b258-aaaf-433f-8f2d-76d913abecdb',app=my_task)
    result = async_task.get()
    print(result)
    
    # 判断异步任务是否执行成功
    # if async_task.successful():
    #   # 获取异步任务的返回值
    #   result = async_task.get()
    #   print(result)
    # else:
    #       print("任务还未执行成功")
    
    
    
    # 1. app 任务 创建或者发布任务
    # 2. broker backend
    # 3. Worker
    
    from celery import Celery
    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):
        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"
    
    
    
    

    timed_task

    import datetime
    import time
    
    from .s4 import my_func1
    
    tp = time.time()
    utc_time = datetime.datetime.utcfromtimestamp(tp)
    add_time = datetime.timedelta(seconds=10)
    utc_time = utc_time + add_time
    
    res = my_func1.apply_async(args=(7, 8), eta=utc_time)
    
    
    

    celery.py

    from celery import Celery
    my_task = Celery("task",
                     broker="redis://127.0.0.1:6379",
                     backend="redis://127.0.0.1:6379",
                     include=["Celery_task.task_one", "Celery_task.task_two"])
    
    

    task_one.py

    from celery_task.celery import my_task
    
    
    @my_task.task
    def func1():
        return 123
    
    
    @my_task.task
    def func3():
        return 789
    
    

    task_two.py

    from celery_task.celery import my_task
    
    
    @my_task.task
    def func2():
        return 456
    
    
  • 相关阅读:
    话题: 工人重度烧伤 厂方疑暗示“安乐死”后再赔偿
    Linux下使用mail命令发送邮件
    跨境电商优秀网站
    smarty模版使用php标签,如何获取模版变量
    弹窗效果处理和改进
    Keepalived + MySQLfailover + GTIDs 高可用
    linux的常用命令
    linux简单介绍,helloworld,vi使用,用户管理
    linux语言设置i18n(转)
    丢手帕问题
  • 原文地址:https://www.cnblogs.com/zzy7372/p/10397223.html
Copyright © 2020-2023  润新知