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了)
flask 与celery的更多相关文章
- Flask 与 Celery 在 windows 下的集成问题
Flask 与 Celery 在 windows 下的集成问题 所有的 Web 框架内部的视图中不适合执行需要长时间运行的任务,包括 Flask .Django 等.这类型的任务会阻塞 Web 的响应 ...
- flask结合celery实现异步响应HTTP请求
摘要: 1.场景描述 2.flask介绍 3.celery介绍 4.项目伪代码记录 5.几个备注点 内容: 1.场景描述 最近在优化用户画像的东西,要开发一个给文本打标签的服务:我这边需要提供一个HT ...
- Flask、Celery、RabbitMQ学习计划
Flask (9.16-9.23) 相关组件了解 (9.16-17) WSGI:Werkzeug 数据库:SQLAlchemy *重点查看 urls和视图 (9.18-19) session和co ...
- 关于Flask使用Celery的实践经验分享
最近大Boss反馈Celery经常出现问题,几经实践终于把问题解决了!于是乎有了这篇博客的诞生,算是一个实践经验的分享吧! 软件版本如下: Celery () Flask () RabbitMQ( ...
- 微信管理系统基于Flask+Vue+Celery+SQLAlchemy+Redis等实现
https://zhuanlan.zhihu.com/p/28102858 现在绝大多数同学都在使用微信,不过微信有很多限制,比如: 微信聊天记录只保存在本地,换个手机那些内容就找不到了 微信扫码加群 ...
- flask 异步celery使用
在开发过程中,耗时长,超时的任务经常发生,比如:获取后端某个大文件数据超时.需要后端计算任务超时,等等, 此时我们就会很自然的想到异步方式,根据需要完成的任务创建一个task_id, 由前端来监听该任 ...
- Win10环境下使用Flask配合Celery异步推送实时/定时消息(Socket.io)/2020年最新攻略
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_163 首先得明确一点,和Django一样,在2020年Flask 1.1.1以后的版本都不需要所谓的三方库支持,即Flask-Ce ...
- 【译】在Flask中使用Celery
为了在后台运行任务,我们可以使用线程(或者进程). 使用线程(或者进程)的好处是保持处理逻辑简洁.但是,在需要可扩展的生产环境中,我们也可以考虑使用Celery代替线程. Celery是什么? C ...
- Celery,Tornado,Supervisor构建和谐的分布式系统
Celery 分布式的任务队列 与rabbitmq消息队列的区别与联系: rabbitmq 调度的是消息,而Celery调度的是任务. Celery调度任务时,需要传递参数信息,传输载体可以选择rab ...
随机推荐
- jq 实现头像(气泡式浮动)
前提:假设每个头像都装在li中. function headMove() { $('li').each(function () { var myLeft = Math.floor(Math.rando ...
- 深喉起底APP线下预装市场,如何一夜间拥有千万用户
注:预装对于中国的移动互联网创业者有多重要?i黑马知道这样一个内幕,某商务告诉我他们公司的前2000万用户就是靠预装打下来的,总部在北京,直接派驻商务长期扎根在深圳搞定手机厂商.而这家公司初期发展得益 ...
- day65——day69
目录 DAY65 课堂笔记 1.vue实例 2.插值表达式 3.文本指令 4.面向对象js 5.js函数补充 6.事件指令 7.属性指令 DAY66 课堂笔记 1.表单指令 2.条件指令 3.循环指令 ...
- javascript基础:语法与html结合方式
一.基本语法: 1.与html结合方式 1.内部JS: * 定义<script>,标签体内容就是JS代码 2.外部JS: * 定义<script>,通过src属性引入外部的 ...
- [Array]448. Find All Numbers Disappeared in an Array
Given an array of integers where 1 ≤ a[i] ≤ n (n = size of array), some elements appear twice and ot ...
- TZ_11_Spring-Boot的属性注入方式(jdbc为例)
1.以上一篇文档为基础 2.创建jdbc外部属性文件 application.properties此名字为默认文件名在使用是不需要使用 @Propertysource("classpath: ...
- PHP--http_build_query--把数组化成&key=value方式
- jnhs[未解决]无法使用选定的hibernate配置文件建立数据库连接.请验证hibernate.cfg.xml中的数据库连接详情信息
工程可以正常的使用读写数据库,当然model和model.hbm.xml文件是自己写的. 解决中
- 使用springMvc对象属性自动封装从jsp向controller传值
controller通过ModelAndView向前台传传递信息 jsp也可以通过model向controller传递信息 这只是其中的一个办法,还有其他几种方式进行前后端的数据交互 如何才能让spr ...
- maven下载安装以及环境配置
1.到官网下载maven 2.解压到自己想放的安装目录 3.复制maven所在的安装路径,然后右键我的电脑-->属性-->高级系统设置-->环境变量 4.在系统变量中新建,设置变量名 ...