python解决flask启动的同时启动定时任务

devtools/2024/9/23 2:35:49/

业务场景描述:在常规的开发中,我们开发接口服务,一般会将数据放在数据库、文件等第三方文件,启动服务后,服务到后台数据库中加载数据,这样做的好处当然是开发会更加便利以及数据的可复用性较高,即不同的场景任务可以使用同一份数据。缺点则是涉及数据加载,会使效率变的低下。因为数据还会涉及从数据库到服务器,这个过程并非数据直接转发。在一些场景固定的情况下,我们可以直接将数据放到内存中,这样算法计算完的数据,可以就在内存中保存,然后直接开发接口,由外部应用调用。

问题描述:使用第三方插件,如uwsgi,gunicorn插件将服务发布到生产后。常规写法无法保证任务同时进行且互不影响。如果使用开发服务wsgi直接启动,可以使用多线程方式实现,但服务并不稳定,官方也不推荐这样使用。

解决方案:方案同样是使用多线程,只不过需要使用后台运行的方式,让算法在后台运行,这样算法在运行时,不会阻塞web服务的主进程。即可保证同时运行

技术路线:算法、flask、gunicorn

具体代码:见下图

重点说明:在这里边其实只有一个之间没有怎么接触过的点就是后台运行。daemon模式,这个模式的运行,不会阻塞主线程。


http://www.ppmy.cn/devtools/45442.html

相关文章

vulnhub靶场之FunBox-10

一.环境搭建 1.靶场描述 As always, its a very easy box for beginners. This works better on VitualBox rather than VMware 2.靶场下载 Funbox: Under Construction! ~ VulnHub 3.靶场启动 靶场IP地址我们不知道,但是网段我们知道是192.168.2.0/24 二.信息…

如何利用python下载原创力文档

原创力文档是一个文档资源共享平台,文档内容类型丰富,包含计算机、高等教育、金融投资、医药卫生、汽车机械、外语学习、报告分析、法律法规、研究生考试、电子工程、经济贸易、建筑施工、幼儿小学教育、中学教育、文学历史、资格认证考试、人力资源、学…

【网络协议Http】Http中get,post,put,delete区别

Http协议 超文本传输协议(Hypertext Transfer Protocol,HTTP)是一个简单的请求-响应协议,它通常运行在TCP之上。 【参考】 GET && POST 对比 关于tcp数据包:对于GET方式的请求,浏览器会把http hea…

Python——cv2 判断图像读取内容是否为空

import cv2 pic_path"xxx.jpg" imagecv2.imread(pic_path) if None image:print("图片为空") else:print("图片不为空")

575. 分糖果

题目 Alice 有 n 枚糖,其中第 i 枚糖的类型为 candyType[i]。Alice 注意到她的体重正在增长,所以前去拜访了一位医生。 医生建议 Alice 要少摄入糖分,只吃掉她所有糖的 n / 2 即可(n 是一个偶数)。Alice 非常喜欢这些…

智能优化算法 | Matlab实现ABC人工蜂群优化算法

智能优化算法 | Matlab实现ABC人工蜂群优化算法 文章目录 智能优化算法 | Matlab实现ABC人工蜂群优化算法文章概述源码设计文章概述 智能优化算法 | Matlab实现ABC人工蜂群优化算法。 源码设计 function BestCost = ABC(fhd,funcNum,nPop,MaxIt,Lb,Ub,dim

android源码下载编译模拟器运行

安卓aosp源码下载,编译,模拟器运行 virtualbox7 安装ubuntu20.04,ubuntu22.04 编译android aosp 源码可以,但是模拟器跑不了,哪个版本都是要么黑屏,要么整个vbox虚拟机闪退。解决方案使用vmware17 ##拯救…

SQL入门全攻略(一)

一、引言 在当今的数据驱动世界中,SQL(结构化查询语言)无疑是数据处理和分析的基石。无论你是数据科学家、数据库管理员还是业务分析师,掌握SQL都是必不可少的技能。本文将带你从SQL的基础知识开始,逐步深入&#xff…