[Flask]celery异步任务队列的使用
Celery异步任务队列
目录结构树:
配置文件config.py:
# 设置中间人地址
broker_url = 'redis://127.0.0.1:6379/1'
主main.py:
import sys
import os from celery import Celery from flask import Flask
from flask_mail import Mail CELERY_DIR = os.path.dirname(os.getcwd())
sys.path.insert(0, CELERY_DIR)
import config mail = Mail() app = Flask(__name__)
app.config.from_object(config.config.get(os.environ.get('env'))
mail.init_app(app) def make_celery(app):
# 创建celery对象并设置
celery = Celery(app.import_name)
# 加载配置
celery.config_from_object('celery_tasks.config')
# celery.conf.update(app.config)
TaskBase = celery.Task class ContextTask(TaskBase):
abstract = True
def __call__(self, *args, **kwargs):
with app.app_context():
return TaskBase.__call__(self, *args, **kwargs) celery.Task = ContextTask
# 启动celery worker时自动发现任务
celery.autodiscover_tasks(['celery_tasks.email',])
return celery celery = make_celery(app)
任务函数tasks.py:
from flask_mail import Message import config
from celery_tasks.main import celery, mail # 使用装饰器将send_email函数装饰成任务函数
@celery.task(name='send_email')
def send_email(to, subject, html_message): msg = Message(
subject,
sender=config.Config.MAIL_USERNAME,
html=html_message,
recipients=[to]
)
mail.send(msg) if __name__ == '__main__':
send_email.delay('xx@xx.com', 'xx', 'xx')
启动命令:
celery worker -A main.celery -l info
发出任务函数:
send_email.delay('xx@xx.com', 'xx', 'xx')
[Flask]celery异步任务队列的使用的更多相关文章
- Django使用Celery异步任务队列
1 Celery简介 Celery是异步任务队列,可以独立于主进程运行,在主进程退出后,也不影响队列中的任务执行. 任务执行异常退出,重新启动后,会继续执行队列中的其他任务,同时可以缓存停止期间接收 ...
- Celery异步任务队列/周期任务+ RabbitMQ + Django
一.Celery介绍和基本使用 Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celer ...
- Win10环境下使用Flask配合Celery异步推送实时/定时消息(Socket.io)/2020年最新攻略
原文转载自「刘悦的技术博客」https://v3u.cn/a_id_163 首先得明确一点,和Django一样,在2020年Flask 1.1.1以后的版本都不需要所谓的三方库支持,即Flask-Ce ...
- 异步任务队列Celery在Django中的使用
前段时间在Django Web平台开发中,碰到一些请求执行的任务时间较长(几分钟),为了加快用户的响应时间,因此决定采用异步任务的方式在后台执行这些任务.在同事的指引下接触了Celery这个异步任务队 ...
- Celery 分布式任务队列快速入门
Celery 分布式任务队列快速入门 本节内容 Celery介绍和基本使用 在项目中如何使用celery 启用多个workers Celery 定时任务 与django结合 通过django配置cel ...
- celery异步消息处理框架
Celery 1.什么是Clelery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组 ...
- Celery 异步任务 , 定时任务 , 周期任务 的芹菜
1.什么是Celery?Celery 是芹菜Celery 是基于Python实现的模块, 用于执行异步定时周期任务的其结构的组成是由 1.用户任务 app 2.管道 broker 用于存储 ...
- Celery 分布式任务队列快速入门 以及在Django中动态添加定时任务
Celery 分布式任务队列快速入门 以及在Django中动态添加定时任务 转自 金角大王 http://www.cnblogs.com/alex3714/articles/6351797.html ...
- Django --- celery异步任务与RabbitMQ模块
一 RabbitMQ 和 celery 1 celery Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务, ...
随机推荐
- kafka调优
kafka调优:[root@bi-kafka-1 bin]# pwd/data/kafka-9092/bincat kafka-server-start.sh if [ "x$KAFKA_H ...
- BugkuCTF--never give up
这道题还挺有意思的... http://123.206.87.240:8006/test/hello.php 查看元素,有个1p.html,访问. 还没看到网页元素就跳转了...抓包! 抓到了一堆东西 ...
- 调用webService学习小结
这段时间项目进行到了最后时刻,但是还有很多需求没有搞清楚,眼看deadline越来越近,压力也越来越大.现在我的主要工作是将别人开发好的一个系统给加载到我们系统中,使用的方法是通过webService ...
- java多线程之并发编程
1.并发不一定比串行更快 因为并发有线程创建和上下文切换的开销 2.java的并发采用内存共享模型 3.单线程中重排序不会影响到结果 但多线程中重排序可能会影响到结果 4.votaile变量 当线程A ...
- sql server 函数详解(4)日期和时间函数
时间和日期函数第一部分 时间和日期函数第二部分
- MySQL主从延时这么长,要怎么优化?
MySQL主从复制,读写分离是互联网常见的数据库架构,该架构最令人诟病的地方就是,在数据量较大并发量较大的场景下,主从延时会比较严重. 为什么主从延时这么大? 答:MySQL使用单线程重放RelayL ...
- sqlserver2016 management tool v18
安装完sql server 2016 sp1版本后再安装管理工具v18版本,启动管理工具,启动不起来,自动退出了,没有任何反应. 解决该问题方案: 找到Microsoft.VisualStudio.S ...
- 多线程学习-- part 1 Thread
一.Thread的使用 (1)sleep:进程等一会 (2)join:让并发处理变成串行 (3)start:启动线程的唯一方法,start()首先为线程分配必须的系统资源,调度线程运行并执行线程的ru ...
- 【转载】java工程师学习之路---给自己的目标
想学习或者提升java的可以看看,单从java角度来看总结的虽然还是很全面的,主要是为了自己看 http://blog.csdn.net/peace1213/article/details/50849 ...
- CssSyntaxError (2:1) Unknown word 1 | > 2 | var content = require("!!./index.css");
项目引入css文件后报错 Module build failed (from ./node_modules/_css-loader@2.1.1@css-loader/dist/cjs.js):CssS ...