zoukankan      html  css  js  c++  java
  • celery 使用(一)

    使用celery完成异步任务

    背景

    有时我们需要一些定时任务,比如,30分钟后,修改订单状态为不可支付,并恢复库存,此时,要实现这种功能需要单独一个程序,使其不断查询时间是否到期。显然这种方式会浪费大量资源,所以我们引入一个定时任务的框架celery。

    celery简介

    celery 是一个高效的异步任务框架,可以立刻执行异步操作,或者定时执行。也可以同步等待运行结果。

    安装运行

    要求:

    redis(也可使用rabbitMQ)

    celery:
    pip install -U Celery

    代码

    • 准备任务文件task.py
     from celery import Celery
    
     app = Celery('test_celery', include=['task'])
     #app.config_from_object('celeryconfig')
     app.conf.broker_url = 'redis://:P@ssword1!@localhost:6379/0'
    
     @app.task
     def add(x, y):
         return x+y
    
     if __name__ == '__main__':
         app.start()
    
    • 运行celery worker 服务:
      celery -A task worker --loglevel=info

    • ipython中启动任务

    In [1]: from task import add
    
    In [2]: add.delay(1,2). # 立刻执行异步操作
    Out[2]: <AsyncResult: 96ebcaf3-5439-4f2d-8408-1a370772d84d>
    
    In [3]: add.apply_async((1,2), countdown=10) # 10s钟后执行操作,
    Out[3]: <AsyncResult: 55a59b9e-59b0-466a-bf96-e160bf2a2680>
    

    执行结果

  • 相关阅读:
    大数据知识简单总结
    机器学习pipeline总结
    spark SQL、RDD、Dataframe总结
    hbase介绍
    git命令教程
    hive查询语句入门(hive DDL)
    hive安装部署
    调用高德地图,通过获取的区域名称得到行政区域详情
    搭建SSM框架的配置文件
    jquery实现get的异步请求
  • 原文地址:https://www.cnblogs.com/yuzhenjie/p/9508057.html
Copyright © 2011-2022 走看看