zoukankan      html  css  js  c++  java
  • flask 与celery

    在flask 中使用celery 是特别简单的,celery官网都没有特别介绍如何使用。

    使用celery首先要知道怎么配置celery。

      1. 实例化celery

     celery = Celery(__name__, 

                                       broker=config['celery']['broker'],

                          backend=config['celery']['backend']

                         )

            这里的celery 其实在很多文档中都取名app,为区别flask 实例化的app,这里就这样写了



    2.指定task路径。

    一般的task脚本就在当前目录,但我们不会一起放置,那么我们如何告诉celery task脚本在哪里呢?
    celery.autodiscover_tasks(packages=packages)

    autodiscover_tasks 就是收集task的,packages则是包的列表如 ['app1.task.scripts','app2.task.scripts']


    3.配置
    celery.conf.update(concurrency=20, force_execv=True, max_tasks_per_child=10)
    这里update 可以是其他选项。
    如:
    a. 自定义调度。可以实现动态添加定时任务等功能
    celery.conf.beat_scheduler = config['celery']['BEAT_SCHEDULER']
    b. 结果存储。方便业务查询,状态查看,没有太大意义
    celery.conf.result_backend = config['celery']['BEAT_RESULT']

    当然还有其他配置,可以依照官网的配置,再以上方式即可配置好。

    4. task 脚本编写

    @celery.task
    def add(x,y):
    return x+y

    5.启动脚本
    app = celery

    就是这样可以高度自定义的celery遇见同样的flask. 他们之间还需第三者来转换么,很多人老是说flask 只能在celery3.x版本用。还有人用django时也同样出现这样的问题。
    因为他们都用了第三者。


    ----- 似乎没有说到flask(好吧,我不准备介绍在flask中如何调用task了)






  • 相关阅读:
    Git上传文件不能超过100M的解决办法
    微信小程序 转发 分享功能(二)
    微信小程序 转发 分享功能(一)
    github上分支的合并
    微信小程序公告滚动通知
    django-blog:多对多查询
    正弦型函数的给出方式
    人教版|反三角函数
    在线|北京人大附中高一试题
    争鸣|深层次理解几何概型的概念和求解
  • 原文地址:https://www.cnblogs.com/apuyuseng/p/11671848.html
Copyright © 2011-2022 走看看