celery

celery

雨燕双飞 提交于 2019-11-26 02:52:47
Celery 官方 Celery 官网:http://www.celeryproject.org/ Celery 官方文档英文版:http://docs.celeryproject.org/en/latest/index.html Celery 官方文档中文版:http://docs.jinkan.org/docs/celery/ Celery架构 Celery的架构由三部分组成,消息中间件(message broker)、任务执行单元(worker)和 任务执行结果存储(backend - task result store)组成。 消息中间件 Celery本身不提供消息服务,但是可以方便的和第三方提供的消息中间件集成。包括,RabbitMQ, Redis等等 任务执行单元 Worker是Celery提供的任务执行的单元,worker并发的运行在分布式的系统节点中。 任务结果存储 Task result store用来存储Worker执行的任务的结果,Celery支持以不同方式存储任务的结果,包括AMQP, redis等 使用场景 异步任务:将耗时操作任务提交给Celery去异步执行,比如发送短信/邮件、消息推送、音视频处理等等 定时任务:定时执行某件事情,比如每天数据统计 Celery的安装配置 pip install celery 消息中间件:RabbitMQ/Redis

DRF 获取DefaultRouter 对应的url

时间秒杀一切 提交于 2019-11-25 22:17:02
命令 python manage.py show_urls urls.py from user.router import core_router urlpatterns = [ path('user/login/', views.LoginView.as_view(), name='login'), path('user/logout/', views.LogoutView.as_view(), name='logout'), path('user/register/', views.UserRegisterView.as_view(), name='register'), path('user/forget/', views.UserForgetView.as_view(), name='forget'), # path('code/image/', views.LoginView.as_view()), ] urlpatterns += core_router.urls router.py from rest_framework.routers import DefaultRouter from user import views core_router = DefaultRouter() core_router.register('user', views

flask 异步celery使用

别说谁变了你拦得住时间么 提交于 2019-11-25 20:26:13
在开发过程中,耗时长,超时的任务经常发生,比如:获取后端某个大文件数据超时、需要后端计算任务超时,等等, 此时我们就会很自然的想到异步方式,根据需要完成的任务创建一个task_id, 由前端来监听该任务是否完成。 本文主要分享:flask中实现异步功能--celery,【后续django异步待更新】 flask 中使用celery,只需要简单四步: 1.初始化celery【配置broker 和 backend】   celery = Celery('celery_demo', broker=app.config.get('CELERY_BROKER_URL'),backend=app.config.get('CELERY_BACKEND_URL')) 2.在需要异步执行的方法上使用@celery.task装饰器   @celery.task   def add(a,b):     return a+b 3.在方法调用时,需要使用fun.delay(args)   add.delay(1,2) 4.celery 启动   celery -A apps.celery worker -l info --concurrency=3 坑:在使用celery异步进行数据库进行交互时,务必手动断开连接,否则容易造成,lost connection error 来源: https://www