当前位置: 首页 > news >正文

异步处理与后台任务管理:在 FastAPI 中实现高级特性

异步处理与后台任务管理:在 FastAPI 中实现高级特性

目录

  1. 背景任务与异步处理概述
  2. 🛠️ 使用 BackgroundTasks 执行后台任务
  3. 🚀 异步视图函数:使用 asyncawait
  4. 🔄 处理并发任务:提升应用性能与响应能力

1. ⚡ 背景任务与异步处理概述

在现代 Web 开发中,尤其是在需要高并发处理的应用中,如何高效地管理后台任务和处理异步请求成为了至关重要的问题。FastAPI 通过内建的 BackgroundTasks 类和异步编程模型为开发者提供了强大的工具,以实现更高效的任务管理和性能优化。背景任务通常指在响应后执行的任务,常用于发送电子邮件、记录日志、进行数据处理等场景。而异步编程则允许多个任务并发执行,提升 Web 应用的响应能力,避免阻塞操作带来的性能瓶颈。

背景任务的重要性

在传统的同步 Web 应用中,任何耗时操作(如发送邮件、生成报告等)都会阻塞主线程,导致用户请求的响应时间延长。而使用 FastAPI 的 BackgroundTasks,开发者能够将这些耗时操作放到后台异步执行,而不影响用户的体验。例如,用户请求某个资源时,系统可以立即返回响应,而在后台继续处理一些数据或任务,直到任务完成。这样,用户的等待时间大大减少,而后台任务也得到了妥善处理。

异步编程的优势

异步编程使用 asyncawait 关键词来标记可等待的操作,使得应用能够在处理 I/O 操作(如数据库查询、外部 API 请求等)时,不会阻塞其他任务的执行。这种方法能够显著提升应用的并发能力和响应速度,尤其是在高并发的场景中,异步模型的优势尤为明显。

2. 🛠️ 使用 BackgroundTasks 执行后台任务

FastAPI 提供了一个 BackgroundTasks 类,可以用来在请求处理的同时执行一些耗时的后台任务。这些任务在响应返回给客户端后才会开始执行,从而不会影响到主线程的工作流程。

基本用法:将任务放入后台执行

假设我们有一个需要发送邮件的 API,发送邮件的操作可能会消耗一定的时间。通过 BackgroundTasks,可以在响应用户请求后将发送邮件的操作移到后台执行,避免阻塞用户的请求。

from fastapi import FastAPI, BackgroundTasks
import timeapp = FastAPI()# 定义后台任务函数
def send_email(email: str):time.sleep(5)  # 模拟发送邮件的耗时操作print(f"邮件已发送至 {email}")# 创建 API 路由
@app.get("/send-email/")
async def send_email_task(background_tasks: BackgroundTasks, email: str):# 将发送邮件的任务添加到后台任务队列中background_tasks.add_task(send_email, email)return {"message": "请求已提交,邮件将稍后发送"}

在上面的代码中,send_email 是一个模拟的耗时操作(用 time.sleep(5) 模拟邮件发送过程)。在 /send-email/ 路由中,BackgroundTasks 被用来将 send_email 任务放入后台执行。当 API 返回响应时,邮件发送任务才开始执行,用户可以立即获得响应,而无需等待邮件发送完毕。

更复杂的后台任务处理

对于更复杂的后台任务,我们可以将其与其他服务(如数据库、外部 API)结合。例如,假设在用户提交数据后,系统需要生成报告并通过邮件发送报告链接。此时可以通过 BackgroundTasks 执行多个后台任务。

def generate_report(user_id: int):# 模拟报告生成time.sleep(3)print(f"为用户 {user_id} 生成的报告已准备好")def send_report_email(email: str, report_link: str):time.sleep(2)print(f"报告已发送至 {email}, 链接: {report_link}")@app.get("/generate-report/")
async def generate_report_task(background_tasks: BackgroundTasks, email: str, user_id: int):background_tasks.add_task(generate_report, user_id)background_tasks.add_task(send_report_email, email, "http://report-link.com")return {"message": "报告生成任务已提交,邮件将稍后发送"}

在这个例子中,生成报告和发送邮件是两个独立的后台任务,它们同时运行并不会阻塞主线程。

3. 🚀 异步视图函数:使用 asyncawait

FastAPI 本身是异步兼容的,开发者可以利用 asyncawait 来处理异步 I/O 操作。通过这种方式,FastAPI 可以同时处理多个请求,从而提高应用的并发能力。在进行数据库查询、调用外部 API 或进行其他 I/O 密集型操作时,异步编程的优势尤为显著。

异步视图函数

通过在 FastAPI 路由中定义异步函数(即使用 async def),可以使得这些视图函数非阻塞地运行。对于 I/O 密集型的任务,使用异步函数能够显著提高应用的响应能力。

import httpx
from fastapi import FastAPIapp = FastAPI()# 异步调用外部 API
@app.get("/external-api/")
async def call_external_api():async with httpx.AsyncClient() as client:response = await client.get("https://api.example.com/data")return {"data": response.json()}

在这个例子中,call_external_api 是一个异步视图函数,它通过 httpx.AsyncClient 异步调用外部 API。使用 await 等待 API 响应时,FastAPI 的主线程不会被阻塞,可以同时处理其他请求,提升了应用的性能。

异步数据库操作

异步编程不仅限于外部 API 调用,也可以应用到数据库操作中。使用异步数据库库(如 databases)可以使得数据库查询过程不再阻塞主线程,从而提升整体响应速度。

from databases import DatabaseDATABASE_URL = "sqlite+aiosqlite:///./test.db"
database = Database(DATABASE_URL)@app.on_event("startup")
async def startup():await database.connect()@app.on_event("shutdown")
async def shutdown():await database.disconnect()# 异步查询数据库
@app.get("/users/{user_id}")
async def get_user(user_id: int):query = f"SELECT * FROM users WHERE id = {user_id}"result = await database.fetch_one(query)return {"user": result}

在上面的代码中,fetch_one 是一个异步数据库查询操作,确保了即使在进行数据库查询时,FastAPI 仍然能够继续处理其他请求,提高了并发能力。

4. 🔄 处理并发任务:提升应用性能与响应能力

在实际的 Web 应用中,处理并发任务是常见的需求。特别是当多个用户同时发起请求,或者后台有多个任务需要并行处理时,合理管理并发任务对于应用性能至关重要。FastAPI 通过异步编程和背景任务提供了有效的并发任务处理方案。

使用异步编程管理并发请求

FastAPI 通过 asyncawait 的结合,可以在处理大量 I/O 密集型任务时保持高效的并发性能。当请求涉及到多个 I/O 操作时,如查询数据库、调用外部 API 或处理文件等,FastAPI 能够在等待时释放资源,从而使其他请求得以执行。

@app.get("/process-data/")
async def process_data():# 模拟处理多个并发任务async def task_1():await asyncio.sleep(2)return "任务1完成"async def task_2():await asyncio.sleep(3)return "任务2完成"# 并发执行任务result_1, result_2 = await asyncio.gather(task_1(), task_2())return {"task_1": result_1, "task_2": result_2}

在这个例子中,asyncio.gather 用于并发执行两个异步任务 task_1task_2,它们的执行时间是独立的。由于使用了异步编程,两个任务可以同时执行,而不需要一个完成后再开始另一个。

后台任务与并发结合

在实际应用中,有时需要将后台任务与并发处理结合使用。例如,某些耗时的后台任务可以在后台执行,而其他并发请求可以继续进行。通过 BackgroundTasks 和异步编程,开发者可以灵活地实现这种功能。

from fastapi import FastAPI, BackgroundTasks
import asyncioapp = FastAPI()# 定义后台任务
def long_task(name: str):print(f"长时间任务开始: {name}")time.sleep(5)print(f"长时间任务完成: {name}")@app.get("/start-task/")
async def start_task(background_tasks: BackgroundTasks):background_tasks.add_task(long_task, "任务A")return {"message": "任务已提交,正在后台执行"}

在这个例子中,long_task 是一个后台任务,它会在后台执行而不会阻塞前端请求。使用 BackgroundTasks.add_task 可以将任务添加到后台执行队列中,从而使得主线程能够继续处理其他任务。

小结

FastAPI 提供的异步处理和后台任务功能为开发者构建高效、响应迅速的 Web 应用提供了强大的工具。通过 BackgroundTasks,开发者可以轻松地将耗时操作移到后台,避免阻塞主线程,提高用户体验。而通过异步视图函数和并发任务的处理,FastAPI 可以处理大量并发请求,提升应用的响应能力和性能。这些特性使得 FastAPI 成为开发高性能 Web 应用的理想框架。

相关文章:

异步处理与后台任务管理:在 FastAPI 中实现高级特性

异步处理与后台任务管理:在 FastAPI 中实现高级特性 目录 ⚡ 背景任务与异步处理概述🛠️ 使用 BackgroundTasks 执行后台任务🚀 异步视图函数:使用 async 和 await🔄 处理并发任务:提升应用性能与响应能…...

ceph存储池

1、存储池 1、存储池的概念 存储池就是ceph的逻辑分区,专门用来存储对象的 特点 将文件切片成对象,通过hash算法,找到存储池中的pg,池中的pg根据crush算法找到osd节点 存储中的PG数量对性能有重要的影响,过多和过少…...

STM32基于HAL库的串口接收中断触发机制和适用场景

1. HAL_UART_Receive_DMA函数 基本功能 作用:启动一个固定长度的 DMA 数据接收。特点: 需要预先指定接收数据的长度(Size 参数)。DMA 会一直工作直到接收到指定数量的数据,接收完成后触发 HAL_UART_RxCpltCallback 回…...

如何查看电脑的屏幕刷新率?

1、按一下键盘的 win i 键,打开如下界面,选择【系统】: 2、选择【屏幕】-【高级显示设置】 如下位置,显示屏幕的刷新率:60Hz 如果可以更改,则选择更高的刷新率,有助于电脑使用起来界面更加流…...

Q3收入回退,盈利与商业化落地步履艰难,文远知行亟待背水一战

撰稿|行星 来源|贝多财经 12月2日,全球商业杂志《Fortune》(财富)揭晓了2024年“未来50强”(The Future 50)企业榜单,上市不久的全球Rbotaxi第一股文远知行(NASDAQ:WRD)位列第26名…...

如何利用Java爬虫获得商品类目

在当今数字化时代,数据已成为企业最宝贵的资产之一。获取和分析数据的能力对于任何希望在市场上保持竞争力的企业来说都是至关重要的。对于电子商务平台和市场研究公司而言,获取商品类目数据尤为重要,因为这些数据可以帮助他们更好地理解市场…...

Charts 教程:创建交互式图表的基础

ECharts 是一个开源的、基于 JavaScript 的数据可视化库,它可以帮助你快速创建交互式的图表。无论是简单的柱状图、折线图,还是复杂的地图和关系图,ECharts 都能够轻松应对。本文将带你了解如何在你的网页中使用 ECharts 创建图表&#xff0c…...

Jackson - JsonGenerator创建JSON、JsonParser解析JSON

以下是关于如何使用Jackson的JsonGenerator类来创建JSON内容以及如何使用JsonParser类来读取JSON内容的教程。 依赖项 首先&#xff0c;在pom.xml文件中添加以下依赖项以引入Jackson库&#xff1a; <dependency><groupId>com.fasterxml.jackson.core</groupI…...

数据结构与算法——1202—排序递归

1、选择排序 #include<iostream> #include<vector> using namespace std;void SelectSort(vector<int>& nums) {int i;int j;int minIndex;int length nums.size();if (length 0 || length 1) return;for (i 0; i < length-1; i)//遍历所有元素{…...

Lattice Radiant Software Lattice Propel Builder Lattice Propel 2024.1 安装

因项目需要&#xff0c;对Lattice 器件LIFCL-40 CrossLink进行评估 先从Lattice官网下载Radiant安装包&#xff1a; Lattice Radiant设计软件 新建工程环境...

【Linux系统】 Linux内核与UNIX设计哲学的结合

Linux 内核虽然不是 UNIX 的直接衍生物&#xff0c;但它深受 UNIX 设计哲学的影响。Linux 的开发者&#xff0c;尤其是 Linus Torvalds&#xff0c;在设计和实现 Linux 时&#xff0c;借鉴了 UNIX 的核心思想&#xff0c;使 Linux 成为一个类 UNIX 系统。 以下从 UNIX 设计哲学…...

MKS EDGE Series RF Generators Power Solution 软件

MKS EDGE Series RF Generators Power Solution 软件...

【机器学习 | 基于Lasso回归和随机森林的上海链家二手房房价预测】

文章目录 &#x1f3f3;️‍&#x1f308; 1. 导入模块&#x1f3f3;️‍&#x1f308; 2. Pandas数据处理2.1 读取数据2.2 查看数据信息2.3 去除重复数据2.4 去除缺失数据2.5 面积、价格、单价、楼层、建筑时间数据提取2.6 朝向数据处理 &#x1f3f3;️‍&#x1f308; 3. 特…...

MyBatis-Plus分页查询方式

分页查询基本方式 SpringBootTest(classes LearningApplication.class) public class MPTest {AutowiredILearningLessonService lessonService;Testpublic void test(){/*** Page<LearningLesson>&#xff1a;MyBatisPlus提供的分页对象* 1&#xff1a;当前页数* 2&am…...

分布式cap

P&#xff08;分区安全&#xff09;都能保证&#xff0c;就是在C&#xff08;强一致&#xff09;和A&#xff08;性能&#xff09;之间做取舍。 &#xff08;即立马做主从同步&#xff0c;还是先返回写入结果等会再做主从同步。类似的还有&#xff0c;缓存和db之间的同步。&am…...

【组件封装】uniapp vue3 封装一个完整的Tabs(标签页)组件教程,功能由简到杂实现讲解。

文章目录 前言一、简单版Tabs代码实现&#xff1a; 二、下划线带动画的TabsAPI回顾&#xff1a;代码实现&#xff1a; 三、内容区域滑动切换切换动画代码实现&#xff1a;&#xff08;2&#xff09;禁用手势滑动切换&#xff08;3&#xff09;内容区域换为插槽 四、标签栏可滚动…...

AI在SEO中的应用与关键词优化探讨

内容概要 在当今数字化时代&#xff0c;人工智能&#xff08;AI&#xff09;技术为搜索引擎优化&#xff08;SEO&#xff09;带来了革命性的改变。传统的SEO主要依赖于人为的经验和判断&#xff0c;而AI则通过算法分析海量数据&#xff0c;提供更加精准和高效的方式优化关键词…...

JUC:Synchronized和锁升级

1. 面试题 谈谈你对Synchronized的理解Sychronized的锁升级你聊聊Synchronized实现原理&#xff0c;monitor对象什么时候生成的&#xff1f;知道monitor的monitorenter和monitorexit这两个是怎么保证同步的嘛&#xff1f;或者说这两个操作计算机底层是如何执行的偏向锁和轻量级…...

如何使用锁实现多进程和多线程的并发执行的安全

多进程和多线程的并发&#xff1a; 多进程和多线程的并发意思是在同一段时间内&#xff0c;多个进程或者线程一起执行&#xff0c;但是这些进程或者线程的执行并不是真正意义上在同一时刻执行&#xff0c;而是在不同的时间里执行&#xff0c;因为每个CPU在同一时间只能处理同一…...

LabVIEW如何用运动控制卡实现伺服电机的转矩控制?

在LabVIEW中&#xff0c;使用运动控制卡实现伺服电机的转矩控制&#xff0c;通常通过以下几个步骤来完成。这里将结合LabVIEW的运动控制功能和伺服电机控制的基本原理进行详细介绍。 ​ 1. 选择合适的运动控制卡 要实现伺服电机的转矩控制&#xff0c;首先需要一张支持伺服电…...

SQL面试题——百度SQL面试题 无效搜索

百度SQL面试题 无效搜索 今天的题目是来自百度的SQL 面试题目 现有一份用户搜索日志,包含用户ID,时间,用户搜索内容。定义 无效搜索:如果用户下一次搜索内容中包含本次搜索内容,则认为本次搜索为无效搜索。请查询用户无效搜索记录 +---------+---------------------+--…...

媒体查询、浏览器一帧渲染过程

文章目录 媒体查询语法示例根据视口宽度应用不同的样式根据设备像素比应用不同的样式根据方向应用不同的样式 使用场景 浏览器一帧的渲染过程 媒体查询 媒体查询&#xff08;Media Query&#xff09;是CSS3中的一个重要特性&#xff0c;它允许开发者根据设备的特定条件&#x…...

实习工作日志

工作日志 遇到的bug 由于不熟悉Python&#xff0c;造成了这个bug python的浅拷贝与深拷贝&#xff0c;一定要创建新的变量&#xff0c;否则只是单纯拷贝地址...

JavaWeb学习--cookie和session

目录 &#xff08;一&#xff09;Cookie概述 1.什么叫Cookie 2.Cookie规范 3.Cookie的覆盖 4.cookie的最大存活时间 ​​​​​​&#xff08;Cookie的生命&#xff09; &#xff08;二&#xff09; Cookie的API 1.创建Cookie&#xff1a;new 构造方法 2.保存到客户端浏…...

ETCD的封装和测试

etcd是存储键值数据的服务器 客户端通过长连接watch实时更新数据 场景&#xff1a; 当主机A给服务器存储 name&#xff1a; 小王 主机B从服务器中查name ,得到name-小王 当主机A更改name 小李 服务器实时通知主机B name 已经被更改成小李了。 应用&#xff1a;服务注册与发…...

c++引用笔记

1 引用的基本使用 // 引用 // 作用&#xff1a;给变量起别名 // 语法&#xff1a;数据类型 &别名 原名int main(int argc, char const *argv[]) {int a 10;int &b a;cout << "a " << a << endl;cout << "b " <&l…...

macOS运行amd64的镜像

在macOS上运行amd64&#xff08;x86_64&#xff09;架构的镜像&#xff0c;通常通过虚拟化或仿真工具来实现。例如&#xff0c;如果你使用的是基于Apple Silicon&#xff08;M1或M2等&#xff09;芯片的Mac&#xff0c;那么你的处理器是ARM架构的&#xff0c;而amd64是x86架构&…...

Oracle查询优化:高效实现仅查询前10条记录的方法与实践

在 Oracle 中&#xff0c;实现仅查询前10条记录的四种方法 1. 使用 ROWNUM 查询 ROWNUM 是 Oracle 中的伪列&#xff0c;用于限制返回的行数。 SELECT * FROM table_name WHERE condition AND ROWNUM < 10;condition&#xff1a;查询条件。ROWNUM < 10&#xff1a;限制…...

【时时三省】(C语言基础)结构体内存对齐

山不在高&#xff0c;有仙则名。水不在深&#xff0c;有龙则灵。 ----CSDN 时时三省 我们已经掌握了结构体的基本使用了。现在我们深入讨论一个问题&#xff1a;计算结构体的大小。 这也是一个特别热门的考点&#xff1a;结构体内存对齐 示例&#xff1a; 第一个s如果根据字…...

工业物联网关

工业物联网关的定义与功能 定义&#xff1a;工业物联网关是一种在工业物联网&#xff08;IIoT&#xff09;系统中起到关键连接作用的设备。它位于工业现场设备&#xff08;如传感器、执行器等&#xff09;和上层的工业网络&#xff08;如企业内部网络、云平台等&#xff09;之间…...

Docker 安装 Yapi

Docker 安装系列 Docker已安装。 1、场景Yapi使用的MongoDB用户信息 1.1 创建自定义 Docker 网络 首先&#xff0c;创建一个自定义的 Docker 网络&#xff0c;以便 MongoDB 和 YApi 容器可以相互通信 [rootflexusx-328569 data]# docker network create yapi-networ…...

MaxEnt模型在物种分布模拟中如何应用?R语言+MaxEnt模型融合物种分布模拟、参数优化方法、结果分析制图与论文写作

目录 第一章 以问题导入的方式&#xff0c;深入掌握原理基础 第二章 常用数据检索与R语言自动化下载及可视化方法 第三章 R语言数据清洗与特征变量筛选 第四章 基于ArcGIS、R数据处理与进阶 第五章 基于Maxent的物种分布建模与预测 第六章 基于R语言的模型参数优化 第七…...

UDE连接不上miniwiggler

PLS 的UDE 软件搭配miniwiggler硬件用来调试英飞凌的单片机是个不错的选择&#xff0c;比如TC275、TC387等等。英飞凌官方开发板板载了miniwiggler&#xff0c;非常方便。 很多买了英飞凌官方开发板的同学可能会发现&#xff0c;使用英飞凌的mentool软件能连接上自己的板子&…...

Trimble X9三维激光扫描仪高效应对化工厂复杂管道扫描测绘挑战【沪敖3D】

化工安全关系到国计民生&#xff0c;近年来随着化工厂数字化改革不断推进&#xff0c;数字工厂逐步成为工厂安全管理的重要手段。而化工管道作为工厂设施的重要组成部分&#xff0c;由于其数量多、种类繁杂&#xff0c;一直是企业管理的重点和难点。 传统的化工管廊往往缺乏详…...

数据结构(Doubly Linked List双向链表)

1.前言&#xff1a; 在计算机科学的广袤领域中&#xff0c;数据结构犹如构建高楼大厦的基石&#xff0c;它们为高效地组织、存储和处理数据提供了坚实的框架。而双向链表作为一种重要且功能强大的数据结构&#xff0c;在众多算法与程序设计场景中都展现出了独特的魅力与价值。…...

【踩坑】修复报错libcurl.so.4、LIBFFI_BASE_7.0、libssl.so.3

转载请注明出处&#xff1a;小锋学长生活大爆炸[xfxuezhagn.cn] 如果本文帮助到了你&#xff0c;欢迎[点赞、收藏、关注]哦~ libcurl.so.4&#xff1a; sudo apt install curl -y LIBFFI_BASE_7.0: conda install libffi3.3 -y libssl.so.3: sudo apt install -y openssl li…...

【Java实现MySQL 数据库导出 Excel 表的方法详解】

MySQL 数据库导出 Excel 表的方法详解 在日常开发中&#xff0c;我们经常需要将数据库中的数据导出为 Excel 文件&#xff0c;以便进行数据分析或分享给其他同事。本文将详细介绍如何从 MySQL 数据库导出数据并生成 Excel 文件&#xff0c;具体实现将基于 Java 语言和 Spring …...

CentOS 7 环境下常见的操作和配置

目录 1. CentOS 7 中的 vsftpd 配置与使用 安装与启动 vsftpd 配置 vsftpd&#xff08;/etc/vsftpd/vsftpd.conf&#xff09; 常见命令 2. 使用 yum 包管理器 3. 安全性与防火墙配置 开放端口 4. 使用 systemd 管理服务 5. SELinux 配置 查看 SELinux 状态 临时禁用…...

使用mtools搭建MongoDB复制集和分片集群

mtools介绍 mtools是一套基于Python实现的MongoDB工具集&#xff0c;其包括MongoDB日志分析、报表生成及简易的数据库安装等功能。它由MongoDB原生的工程师单独发起并做开源维护&#xff0c;目前已经有大量的使用者。 mtools所包含的一些常用组件如下&#xff1a; mlaunch支…...

基于 RNN(GRU, LSTM)+CNN 的红点位置检测(pytorch)

文章目录 1 项目背景2 数据集3 思路4 实验结果5 代码 1 项目背景 需要在图片精确识别三跟红线所在的位置&#xff0c;并输出这三个像素的位置。 其中&#xff0c;每跟红线占据不止一个像素&#xff0c;并且像素颜色也并不是饱和度和亮度极高的红黑配色&#xff0c;每个红线放大…...

35页PDF | 元数据与数据血缘落地实施(限免下载)

一、前言 这份报告详细介绍了元数据与数据血缘的概念、重要性以及在企业数据中台中的应用。报告阐述了数据中台的核心价值在于整合和管理体系内的数据&#xff0c;以提升数据资产化能力并支持业务决策。报告还涵盖了元数据的分类&#xff08;技术元数据和业务元数据&#xff0…...

Hyperf jsonrpc

依赖的 composer 包 composer require hyperf/json-rpc composer require hyperf/rpc-server composer require hyperf/rpc-client composer require hyperf/service-governance composer require hyperf/service-governance-consul composer require hyperf/service-gove…...

MYSQL PARTITIONING分区操作和性能测试

PARTITION OR NOT PARTITION IN MYSQl Bill Karwin says “In most circumstances, you’re better off using indexes instead of partitioning as your main method of query optimization.” According to RICK JAMES: “It is so tempting to believe that PARTITIONing wi…...

go引入skywalking

前置条件&#xff1a;安装好jdk11&#xff0c;linux服务器&#xff08;centos7.9&#xff09;&#xff0c;go版本&#xff08;我的是1.18&#xff0c;1.21都可以&#xff09; 1.下载skywalking Downloads | Apache SkyWalking 2.下载agent源码 Downloads | Apache SkyWalkin…...

如何通过实构与虚构实现动态交互的态、势、感、知的编排组合

通过 实构 与 虚构 实现 动态人机交互的态、势、感、知 的编排组合&#xff0c;是一个涉及多领域的复杂任务。这个问题的核心在于如何将现实和虚拟世界中的元素&#xff0c;特别是人的 态 &#xff08;状态&#xff09;、 势 &#xff08;趋势&#xff09;、 感 &#xff08;感…...

easyexcel 导出日期格式化

1.旧版本 在新的版本中formate已经被打上废弃标记。那么不推荐使用这种方式。 2.推荐方式 推荐使用另外一种方式【 Converter 】代码如下&#xff0c;例如需要格式化到毫秒【yyyy-MM-dd HH:mm:ss SSS】级别 创建一个公共Converter import com.alibaba.excel.converters.Conv…...

大模型Qwen面试内容整理-模型架构与原理

Qwen(通义千问)是阿里巴巴推出的大规模语言模型,其架构和原理与当前主流的大模型(如GPT、LLaMA等)有很多相似之处,但也具备一些独特的特点。下面是Qwen模型架构和原理的详细介绍: Transformer 架构 Qwen模型基于改进的 Transformer 架构,这是一种广泛用于自然语言处理(…...

Python 类的设计(以植物大战僵尸为例)

关于类的设计——以植物大战僵尸为例 一、设计类需满足的三要素1. 类名2. 属性和方法 二、以植物大战僵尸的为例的类的设计1. 尝试分类2. 创建对象调用类的属性和方法*【代码二】*3. 僵尸的继承 三、代码实现 一、设计类需满足的三要素 1. 类名 类名&#xff1a;某类事物的名…...

docker学习笔记(五)--docker-compose

文章目录 常用命令docker-compose是什么yml配置指令详解versionservicesimagebuildcommandportsvolumesdepends_on docker-compose.yml文件编写 常用命令 命令说明docker-compose up启动所有docker-compose服务&#xff0c;通常加上-d选项&#xff0c;让其运行在后台docker-co…...

第一个 JSP 程序

一个简单的 JSP 程序&#xff1a; 使用 IDEA 开发工具新建一个 maven 项目&#xff0c;具体操作如图所示&#xff1a; 配置 Tomcat 服务器 项目结构如下图所示&#xff1a; 3. 修改 index.jsp 页面的代码&#xff1a; <% page language"java" contentType&q…...

特朗普:若加沙被扣押人员未在规定期限内获释,将取消停火协议

当地时间2月10日,美国总统特朗普表示,如果在加沙的被扣押人员在15日中午12时前没有得到释放,他将取消此前达成的停火协议。特朗普还认为,以色列也有权推翻此协议。当地时间2月10日,巴勒斯坦伊斯兰抵抗运动(哈马斯)下属武装派别卡桑旅发言人阿布&middot;乌拜达表示,…...

四渡赤水:中外战争史上的奇观

四渡赤水之战,是红军长征以来最惊心动魄、最精彩的军事行动。它不仅摆脱了优势国民党军的围追堵截,夺取了战略转移的主动权,而且从理论和实践的结合上,完成了党的战略指导思想的根本转变,至今令人赞叹不已。1960年,英国陆军元帅、二战名将蒙哥马利在会见毛泽东主席时,曾…...

尹锡悦被批捕,李在明却迎来噩耗!总统或将“易主”

自12月开始,尹锡悦事件就成为了韩国上下最为关注的案件,前不久,尹锡悦被逮捕,这是否又意味着在野党攻势大获全胜呢?韩国政坛还将出现怎样的变动?面对公调处的逮捕行动,负隅顽抗了12天的尹锡悦最终还是束手就擒,被带到了公调处进行问话。尽管大势已去,但尹锡悦仍不死心…...

土耳其已拘捕14名滑雪酒店火灾涉事人员

当地时间1月24日,总台记者获悉,又有2名土耳其博卢滑雪度假区酒店火灾涉事者被拘捕,截至目前拘捕人数已经达到14人,包括博卢市副市长、消防局副局长、涉事酒店经理及多名工作人员等。其中9人将于今日移交给博卢法院。当地时间1月21日,土耳其博卢省一滑雪度假区酒店发生火灾…...

柬、中、老、缅、泰、越六国合作打击!7万余人被捕

1月21日,澜湄执法合作中心在中国云南省昆明市召开&ldquo;海鸥&rdquo;联合行动总结会,柬埔寨内政部、中国公安部、老挝公安部和国防部、缅甸内政部、泰国皇家警察、越南公安部派出代表团参会,联合国毒品与犯罪问题办公室、东盟警察组织等国际组织亦应邀参会。中心通报…...

小学校长钟海燕,出镜忏悔

1月18日晚,由贵州省纪委监委与贵州广播电视台联合摄制的反腐专题片《纵深推进&mdash;贵州正风肃纪反腐》第三集《守护民生福祉》播出,片中披露了校园餐管理中出现的贪腐问题。专题片中提到,2024年7月,贵州省纪委监委主要负责同志深入黔南州惠水县调研,发现该县在学生&…...