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

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

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

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

技术路线:算法、flask、gunicorn

具体代码:见下图

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/20841.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

深度学习-03-函数的连续调用

深度学习-03-函数的连续调用 本文是《深度学习入门2-自製框架》 的学习笔记,记录自己学习心得,以及对重点知识的理解。如果内容对你有帮助,请支持正版,去购买正版书籍,支持正版书籍不仅是尊重作者的辛勤劳动&#xff0…

LLaMA-Factory推理实践

运行成功的记录 平台:带有GPU的服务器 运行的命令 git clone https://github.com/hiyouga/LLaMA-Factory.git cd LLaMA-Factory/ conda create -n py310 python3.10 conda activate py310由于服务器不能直接从huggingface上下载Qwen1.5-0.5B,但本地可…

51仿真器 PZ-51Tracker 未知设备

插上仿真器,右击我的电脑 等待一下,选择winUSB 此时在keil中选择仿真器会报错,需要安装如下我是win10) 安装好后退出再试,没有报错即可 这项也要选择 另外配置晶振

MYSQL之存储篇

MYSQL之存储篇 存储过程简介存储过程优点: MySQL的存储过程MySQL存储过程的创建1.格式2.声明分割符3.参数4.变量5.注释6.MySQL存储过程的调用7. MySQL存储过程的查询8.MySQL存储过程的修改9.MySQL存储过程的删除10. MySQL存储过程的控制语句11.MySQL存储过程的基本函…

mybatis配置环境流程

mybatis配置环境流程 为啥要用mybatis&#xff1a;通过Mybatis实现快速访问后端pgsql、mysql等数据库。 1.修改pom.xml&#xff0c;添加mybatis相关依赖 <dependency><groupId>org.mybatis.spring.boot</groupId><artifactId>mybatis-spring-boot-s…

React + SpringBoot开发用户中心管理系统

用户中心项目搭建笔记 技术栈 前端技术栈 “react”: “^18.2.0”,ant-design-pro 后端技术栈 SpringBoot 2.6.x 项目源码地址 https://gitee.com/szxio/user-center 前端项目搭建 快速搭建一个后端管理系统项目框架 初始化 antDesignPro 官网&#xff1a; https://…

Spel表达式使用案例

package com.example.demo.api;import com.example.demo.model.User; import lombok.extern.slf4j.Slf4j;<

CSS Web前端框架:深入剖析与应用实践

CSS Web前端框架&#xff1a;深入剖析与应用实践 在快速发展的Web技术领域&#xff0c;CSS Web前端框架已成为构建现代化、高效且响应式网页的关键工具。它们不仅简化了开发过程&#xff0c;还提高了代码的可维护性和复用性。然而&#xff0c;面对众多纷繁复杂的框架选择&…

ByteBuddy字节码增强器

Byte Buddy是java的字节码增强器&#xff0c;一个优雅的运行时java代码生成库&#xff0c;使用时需要慎重 文档地址&#xff1a;http://bytebuddy.net/#/tutorial-cn 1. 引入ByteBuddy <!-- https://mvnrepository.com/artifact/net.bytebuddy/byte-buddy --><depend…

LeetCode---哈希表

242. 有效的字母异位词 给定两个字符串 s 和 t &#xff0c;编写一个函数来判断 t 是否是 s 的字母异位词。 注意&#xff1a;若 s 和 t 中每个字符出现的次数都相同&#xff0c;则称 s 和 t 互为字母异位词。 代码示例&#xff1a; //时间复杂度: O(n) //空间复杂度: O(1) c…

Java生成PDF笔记整理

引入依赖, groupId:com.itextpdf, version:8.0.4, artifactId如下kernel,io,layout,forms创建pdf对象try(ByteArrayOutputStream outputStream new ByteArrayOutputStream()){PdfWriter writer new PdfWriter(outputStream, new WriterProperties().setFullCompressionMode(t…

离线安装python库

1. 下载安装包 在联网机器上安装 # 选择符合目标架构的版本&#xff0c;主要是libc版本和python版本 pip download --platformmanylinux2010_x86_64 --only-binary:all: --python-version3.7.4 tabulate # 或者 pip download --platformmanylinux_2_5_x86_64 --only-binary:a…

do...while循环

基本语法 while循环&#xff0c;是先判断条件再执行。 do...while循环&#xff0c;是先斩后奏&#xff0c;先至少执行一次循环语句块中的逻辑&#xff0c;再判断是否继续。 do {//do while 循环语句块; } while (bool类型的值);注意&#xff1a;do...while语句&#xff0c;存…

Common Lisp笔记

在计划学习函数式编程的时候&#xff0c;我一开始打算学习的是 F#。因为我朋友就是在 DTU 上的学&#xff0c;F# 就是 DTU&#xff08;丹麦理工&#xff09;开发的。但是由于 F# 和微软的 .NET 绑定&#xff0c;而在 macOS 上&#xff0c;目前版本的 .NET 的是有些问题的&#…

2020编程语言排序:探索编程界的热门与趋势

2020编程语言排序&#xff1a;探索编程界的热门与趋势 在数字时代的浪潮中&#xff0c;编程语言作为构建数字世界的基石&#xff0c;其流行度和影响力不容忽视。2020年&#xff0c;各大编程语言在各自的领域里展现出独特的魅力和实力。本文将从四个方面、五个方面、六个方面和…

线性代数|机器学习-P3乘法和因式分解矩阵

文章目录 1. 矩阵分解2. S Q Λ Q T SQ\Lambda Q^T SQΛQT3. A U Σ V T AU\Sigma V^T AUΣVT4. A LU 分解5. 矩阵的四个子空间 1. 矩阵分解 目前我们有很多重要的矩阵分解&#xff0c;每个分解对应于多个前提条件&#xff0c;分解方法&#xff0c;分解后的形状会中如下&…

【Vue】v-for中的key

文章目录 一、引入问题二、分析问题 一、引入问题 语法&#xff1a; key属性 "唯一值" 作用&#xff1a;给列表项添加的唯一标识。便于Vue进行列表项的正确排序复用。 为什么加key&#xff1a;Vue 的默认行为会尝试原地修改元素&#xff08;就地复用&#xff09;…

马宝国和沈有容-UMLChina建模知识竞赛第5赛季第12轮

DDD领域驱动设计批评文集 做强化自测题获得“软件方法建模师”称号 《软件方法》各章合集 参考潘加宇在《软件方法》和UMLChina公众号文章中发表的内容作答。在本文下留言回答。 只要最先答对前3题&#xff0c;即可获得本轮优胜。 如果有第4题&#xff0c;第4题为附加题&am…

大模型备案语料来源安全要求

大模型备案的语料来源安全要求&#xff0c;对服务提供者的要求如下。 a&#xff09;语料来源管理方面&#xff1a; 1&#xff09;面向特定语料来源进行采集前&#xff0c;应对该来源语料进行安全评估&#xff0c;语料内容中含违法不良信息超过5%的&#xff0c;不应采集该来源…

R语言ggplot2包绘制网络地图

重要提示&#xff1a;数据和代码获取&#xff1a;请查看主页个人信息&#xff01;&#xff01;&#xff01; 载入R包 rm(listls()) pacman::p_load(tidyverse,assertthat,igraph,purrr,ggraph,ggmap) 网络节点和边数据 nodes <- read.csv(nodes.csv, row.names 1) edges…