celery初识

celery异步任务

参考博客

  • 在Linux下安装:pip install celery(安装redis:yum install redis-server)据说celery在Windows不好使

  • 小栗子:task1.py

    from celery import Celery
    import time
    
    app = Celery(
                'tasks',   # 任务名
                broker='redis://localhost:6379',   # 任务存储
                backend='redis://localhost:6379')  # 任务返回存储
    
    @app.task
    def hello(a,b):
        print('running tasks...')
        time.sleep(10)
        c=a+b
        return 'hello world%d'%c
    
    • 执行任务:celery -A task1 worker -l debug
    • 在Python解释器中
      >>> import task1
      >>> t=task1.hello.delay(1,2)
      
      1. t.get()获取任务结果,有异常时直接报错。
      2. t.get(timeout=1)超时后没有结果直接报socket.timeout
      3. t.get(propagte=False)任务执行报错时只返回错误对象
      4. t.ready()检查任务是否执行完毕
      5. t.traceback查看异常信息
  • 在项目中使用celery

    • 目录结构
      celery_proj/__init__.py
          /celery.py
          /task1.py
          /task2.py
      
    • 饭粒1:
    # celery.py
    # 导入__future__用于指定从绝对路径导入模块
    from __future__ import absolute_import, unicode_literals
    from celery import Celery
     
    app = Celery('celery_proj',
                broker='redis://localhost:6379',   # 任务存储
                backend='redis://localhost:6379',
                include=['celery_proj.task1','celery_proj.task2'])  # 包含多个任务
     
    # Optional configuration, see the application user guide.
    app
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值