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

Linux系统的延迟任务及定时任务

延迟任务的发起

在系统中我们可以使用at命令来发起延迟任务

at命令执行是调用的是atd服务,即使系统最小化安装atd也会被安装到系统中

at 任务信息存放在系统中/var/spool/at目录中

at 任务的日志文件被存放到/var/log/cron中

at 任务执行时如果遇到系统处于关闭状态,那么在开启时atd任务会检测未执行的任务并且立即执行。

 # systemctl status atd.service 查看延时任务有无开启】atd 是系统延时任务的守护进程,如果此程序关闭,那么系统延时任务无法使用。

# at 19:05                       【延迟并选择命令执行的时间】

at> touch /mnt/file{1..5}              —要执行的命令

at> <EOT>                     <<【 敲CTRL +D表示命令执行,任务录入结束】

at命令参数

-m 当任务完成之后,即使没有标准输出,将给用户发送邮件

# mkdir /rhel9

# mount /dev/sr0 /rhel9

# cd /etc/yum.repos.d/

# vim rhel9.repo

可以通过查看选择安装发送邮件的代码

# dnf search mail

# dnf install postfix.x86_84 s-nail.x86_64         —安装邮件系统

【postfix.x86_84发送邮件程序       s-nail.x86_64查看邮件的程序】

# systemctl enable --now postfix        —开启程序

【显示的是还没有邮件】

显示at命令产生的输出以邮件形式输出

退出mail界面使用q

注意:at执行的命令如果执行了,但是没有输出,就不会给用户发邮件

# at -m now+1min           —有没有输出都产生邮件

-l atq的别名,可列出目前系统上面的所有该用户的at调度

# at now+5min                   【5分钟后执行命令】

# at -l 【查看任务列表】

# at -r 1 【删除任务  1 】

-d atrm的别名,可以取消一个在at调度中的工作   【和 -r 效果相似】

-v 使用较明显的时间格式,列出at调度中的任务列表

-V 显示at的版本

-c 可以列出后面接的该项工作的实际命令内容

# at -c 7       【7是延时命令的序号】

-f 从文件中读取任务

如何非交互的设定延迟任务

在生产环境中我们通常会用脚本来设定一个或多个延迟任务但是at任务的执行需要交互的进行,这样无法满足脚本自动化运行,输入重定向可以解决交互问题:

# watch -n 1 "ls -lR /mnt/"   监控命令】

# vim at.sh

# sh at.sh       【执行脚本】

延迟任务的安全优化

系统中默认只存在黑名单/etc/at.deny

# vim /etc/at.deny     【/etc/at.deny是at命令的黑名单,写在里面的用户无法执行at命令】

# vim /etc/at.allow    【at白名单,只有root用户和在白名单中的用户可以执行at任务】

注意:此名单在系统中不存在,一旦建立黑名单中的内容将被系统忽略

黑白名单为用户列表,每个用户一行

定时任务简介       

【定时任务是永久的,延时任务是一次性的】

和延迟任务类似,我们可以用crontab来解决自动进行的周期性的维护

定时任务类似手机闹钟,会重复执行

当定时任务产生输出后,这些输出会以邮件的形式发送给延迟任务发起者

在RHEL9中默认系统中的所有普通用户都可以发起定时任务

定时任务发起

在系统中我们可以使用crontab命令来发起用户级定时任务。

在系统中/etc/cronfilename 是系统级定时任务,只有root用户可以发起。

定时任务执行是调用的是crond服务,即使系统最小化安装crond也会被安装到系统中。

定时任务信息存放在系统中/var/spool/cron目录中,存放文件和发起人名称一致。

定时任务的日志文件被存放到/var/log/cron中。

定时任务执行时如系统处于关闭状态,那开启时crond任务会检测未执行的任务并立即执行。

        # systemctl status crond.service     【定时任务的守护进程】

发起用户级周期行任务

周期任务发起方式

crontab命令的执行格式为:crontab –u 用户 –e

-u:用来设定某个用户的crontab服务此参数一般有root用户来运行。

# crontab -u root -e

*    *     *  *  *     touch …

分钟 小时 天 月  周

-e:编辑用户的crontab文件内容。如果不指定用户则表示编辑当前用户crontab文件。

-l:显示某个用户的crontab文件内容,如果不指定用户,则显示当前用户的。

-r:从/var/spool/cron目录中删除某个用户的crontab文件

-i:在删除用户的crontab文件时给确认提示【输入y表示确定执行命令】。

crontab 设定定时任务是会以vi命令打开临时文件,保存时把内容同步到/var/spool/cron中。

系统级别crontab目录详解

/etc/cron.d                       系统自定义周期任务

/etc/cron.daily                    每天周期任务

/etc/cron.hourly                   每小时周期任务

/etc/cron.monthly                 每月周期任务

/etc/cron.weekly                  每周周期任务

注意:把要执行的动作记录为脚本,并把脚本放到相应的目录中就会以相应的时间执行。

# watch -n 1 "ls /media/ -l"    监控命令】

# cd /etc/cron.d     【进入自定义周期任务目录

# vim   xxx    自定义名字,创建系统级别crontab任务

* * * * *   root   touch /media/lee{1..5}            —这里输入的脚本会自动运行

定时任务执行优化

系统当中默认每个人都能执行crontab命令

系统中默认只存在黑名单/etc/cron.deny,写入此文件中的用户会被禁止使用定时任务

# echo test > /etc/cron.deny         【输入黑名单用户】

在系统中可以手动建立白名单/etc/cron.allow,当此文件出现黑名单不会被检测

# echo test > /etc/cron.allow              【输入白名单用户】

练习:在系统中设定延迟任务要求如下 

        1,在系统中建立easylee用户,设定其密码为easylee

        2,延迟任务由root用户建立

        3,要求在5小时后备份系统中的用户信息文件到/backup中

        4,确保延迟任务是使用非交互模式建立

        5,确保系统中只有root用户和easylee用户可以执行延迟任务的设定

1,# useradd easyle             # echo easyle | passwd --stdin easyle

2 - 4,# vim at.sh                 【选择root用户,建立非交互模式的脚本】

        mkdir /backup

        cp  /etc/passwd  /backup

# at -v now-5hour                  【配置延时任务】

>> sh at.ch                        【非交互模式运行任务】

5,vim /etc/at.allow                【配置白名单】

        root

        easylee

练习:在系统中设定定时任务并优化定时任务 

        1,每天凌晨4点显示系统的根设备使用信息并以邮件的形式发送到root邮箱中

        2,确保此任务为系统定时任务

确定邮件系统安装成功   # dnf install postfix.x86_84 s-nail.x86_64

# systemctl enable --now postfix        —开启程序

# cd /etc/cron.d     【进入自定义周期任务目录

# vim   xxx

00 04 * * *    root df -h / | mail -s ’date’ root

# mail -u root          【查看邮箱邮件】

相关文章:

Linux系统的延迟任务及定时任务

延迟任务的发起 在系统中我们可以使用at命令来发起延迟任务 at命令执行是调用的是atd服务&#xff0c;即使系统最小化安装atd也会被安装到系统中 at 任务信息存放在系统中/var/spool/at目录中 at 任务的日志文件被存放到/var/log/cron中 at 任务执行时如果遇到系统处于关闭状态…...

【蓝桥杯】水质检测

水质检测 题目描述 小明需要在一条 2 n 2 \times n 2n 的河床上铺设水质检测器。在他铺设之前&#xff0c;河床上已经存在一些检测器。如果两个检测器上下或者左右相邻&#xff0c;那么这两个检测器就是互相连通的。连通具有传递性&#xff0c;即如果 A A A 和 B B B 连通…...

【晶振】晶振的工作原理及其与单片机关系

晶振(晶体振荡器)是电子设备中常见的元件,其核心功能是提供稳定的时钟信号,而单片机(MCU)依赖这一信号来同步内部操作。以下是晶振的工作原理及其与单片机关系的详细说明: 一、晶振的工作原理 压电效应与谐振 晶振的核心是石英晶体,利用其压电效应: 当在晶体两端施加电…...

配置 C/C++ 语言智能感知(IntelliSense)的 c_cpp_properties.json 文件内容

配置 C/C 语言智能感知&#xff08;IntelliSense&#xff09;的 c_cpp_properties.json 文件内容 {"configurations": [{"name": "Linux","includePath": ["${workspaceFolder}/**","/opt/ros/humble/include/**&quo…...

Postgresql源码(143)统计信息基础知识(带实例)

概念与总结 高频值&#xff08;Most Common Values, MCV&#xff09;​​ 存储在 most_common_vals 中。每个高频值的频率通过 most_common_freqs 单独记录&#xff08;例如 0.010966667 等&#xff09;。​​MCV 用于优化等值查询​​&#xff08;如 poid 33&#xff09;&…...

【含文档+PPT+源码】基于SpringBoot+vue的疫苗接种系统的设计与实现

项目介绍 本课程演示的是一款 基于SpringBootvue的疫苗接种系统的设计与实现&#xff0c;主要针对计算机相关专业的正在做毕设的学生与需要项目实战练习的 Java 学习者。 1.包含&#xff1a;项目源码、项目文档、数据库脚本、软件工具等所有资料 2.带你从零开始部署运行本套系…...

解决 Dart Sass 的旧 JS API 弃用警告 的详细步骤和解决方案

以下是解决 Dart Sass 的旧 JS API 弃用警告 的详细步骤和解决方案&#xff1a; 错误原因 Dart Sass 1.x 版本中使用的旧 JavaScript API&#xff08;如 sass.render() 或 sass.compile() 的旧调用方式&#xff09;将在 2.0.0 版本中被移除。需迁移到新 API 以避免未来报错。…...

Concepts (C++20)

C20 Concepts Concepts 是 C20 引入的核心特性&#xff0c;用于显式约束模板参数&#xff0c;提升代码可读性和错误提示。以下通过代码示例和原理分步骤解析其用法。 1. 基本概念 目标&#xff1a;显式声明模板参数必须满足的条件。优势&#xff1a;替代复杂的 SFINAE 和 ena…...

CVE-2024-23897-Jenkins 2.441之前版本存在任意文件读取漏洞

1.漏洞介绍 Jenkins 2.441及更早版本&#xff0c;以及LTS 2.426.2及更早版本没有禁用其CLI命令解析器的一个功能&#xff0c;该功能会将参数中字符后跟的文件路径替换为该文件的内容&#xff0c;允许未经身份验证的攻击者读取Jenkins控制器文件系统上的任意文件。 2.poc利用 下…...

利用 SSE 实现文字吐字效果:技术与实践

利用 SSE 实现文字吐字效果:技术与实践 引言 在现代 Web 应用开发中,实时交互功能愈发重要。例如,在线聊天、实时数据监控、游戏中的实时更新等场景,都需要服务器能够及时将数据推送给客户端。传统的请求 - 响应模式在处理实时性要求较高的场景时显得力不从心,而 Server…...

离线部署kubernetes

麒麟Linux服务器 AMR架构 &#x1f9f0; 离线部署 Kubernetes v1.25.9&#xff08;麒麟系统 Docker&#xff09; 一、验证Docker部署状态 ‌检查Docker服务运行状态‌ systemctl status docker 预期输出应显示 Active: active (running)&#xff0c;表明服务已启动‌18。 ‌…...

2024武汉邀请赛B.Countless Me

题目链接 #include<bits/stdc.h> using namespace std; using lllong long;int main() {ios::sync_with_stdio(0),cin.tie(0),cout.tie(0);ll n; cin>>n;vector<ll>a(n1);ll res0;for(int i1;i<n;i) cin>>a[i],resa[i];ll ans0;for(int i32;i>…...

第53讲 农学科研中的AI伦理与可解释性——探索SHAP值、LIME等可解释工具与科研可信性建设之道

目录 一、为什么农学科研中需要“可解释AI”? ✅ 场景示例: 二、常见可解释AI工具介绍 1. SHAP(SHapley Additive exPlanations) 2. LIME(Local Interpretable Model-agnostic Explanations) 三、AI伦理问题在农学中的体现 🧭 公平性与偏见 🔐 数据隐私 🤖…...

《Python3网络爬虫开发实战(第二版)》配套案例 spa6

Scrape | Moviehttps://spa6.scrape.center/ 请求影片列表api时&#xff0c;不仅有分页参数&#xff0c;还多了一个token&#xff0c;通过重发请求发现token有时间限制&#xff0c;所以得逆向token的生成代码。 通过xhr断点定位到接口请求位置 刷新页面或者点翻页按钮&#x…...

面试题:Java程序CPU 100%问题排查指南

Java程序CPU 100%问题排查指南 当Java程序出现CPU使用率达到100%的情况时,通常意味着程序存在性能瓶颈或无限循环等问题。以下是系统化的排查方法和解决方案: 1. 快速定位问题线程 使用top命令初步定位 top -H -p <java_pid> # 查看Java进程的所有线程CPU占用线程…...

YOLOv12的注意力机制革新与实时检测性能分析——基于架构优化与历史版本对比

目录 一、摘要 二、引言 三、YOLO架构的技术演变 四、YOLOv12的架构设计 主干网特征提取 头部特征融合和目标检测 五、YOLOv12的架构创新 区域注意力模块 残差高效层聚合网络&#xff08;R-ELAN&#xff09; 其他改进和效率提升 六、YOLOv12 的基准评估 延迟与精度…...

Ollama工具调用(Tool Calls)业务应用案例

场景&#xff1a;电商客服自动处理退货请求 业务需求&#xff1a;用户通过聊天界面申请退货&#xff0c;模型需调用外部工具验证订单状态、触发退货流程&#xff0c;并返回处理结果。 1. 定义工具列表 在请求中声明模型可调用的工具&#xff08;函数&#xff09;及其参数格式…...

输入捕获模式测频率

前提工作&#xff1a; PA6、PA0通过跳线相连&#xff0c;PA6测试PA0的输出频率 本来只有下列函数&#xff0c;改变占空比 但是我们需要测试频率&#xff0c;需要动态改变频率。 void PWM_SetCompare1(uint16_t Compare) {TIM_SetCompare1(TIM2, Compare); //设置CCR1的值 }…...

【Vue3 实战】插槽封装与懒加载

一、为什么需要插槽&#xff1f;从一个面板组件说起 在电商首页开发中&#xff0c;经常遇到这样的场景&#xff1a; 「新鲜好物」「人气推荐」同样类型模块都需要相同的标题栏&#xff0c;但内容区布局不同 这时候&#xff0c;插槽&#xff08;Slot&#xff09;就像一个「内容…...

Matlab 复合多层结构的隔声研究

应用转移矩阵的方法,就平面声波垂直入射的情况,对具有周期结构的无限大多层板的隔声特性进行了理论分析,并对结构不同的多层板的隔声特性进行了数值模拟.理论分析和数值模拟表明:与通常隔声用的单层或双层板相比,在保持面密度不变的条件下&#xff0c;采用多层板结构能够在某些…...

vulkanscenegraph显示倾斜模型(6)-帧循环

前言 上一部分&#xff0c;通过十个章节的内容&#xff0c;对视景器的初始化与准备工作进行了系统性的剖析。本章将在该基础上&#xff0c;探讨vsg中的帧循环机制&#xff0c;主要包含前进到下一帧、事件处理、更新、记录与提交、呈现五个部分&#xff0c;同时整个过程包含了复…...

k8s 1.26版部署

环境规划: pod网段:10.244.0.0/16 service网段:10.10.0.0/16 注意: pod和service网段不可冲突,如果冲突会导致K8S集群安装失败。 容器运行时本次使用containerd。 主机规划: 一、初始化系统(所有节点) 1. 主机名定义以及解析 2. 关闭防火墙 3. 关闭selinux 4. 时间同…...

Android之AI自动化测试--Midscene

文章目录 前言一、准备工作1.安装2.准备 API Key3.安装 adb4.连接设备 二、yaml格式自动化脚本1. 脚本案例2.执行结果 三、文件结构变化android 部分 前言 字节 Web Infra团队官宣Midscene 从 v0.15 开始支持 Android 自动化测试&#xff0c;本篇文章介绍yaml方式的Android自动…...

Cadence 建立复合原理图封装时怎么切换页面

1.在当前页面A绘制完成&#xff0c;若要切换到下一页面B。怎么操作呢&#xff1f; 见下面&#xff1a; CTRLN,切换到下一部分(CTRLB,切换到前一部分)继续放线以及管脚 即&#xff1a;此时在原理图库的A部分 此时按 CTRLN,切换到下一B部分...

Sharding-JDBC 系列专题 - 第八篇:数据治理与高级功能

Sharding-JDBC 系列专题 - 第八篇:数据治理与高级功能 本系列专题旨在帮助开发者全面掌握 Sharding-JDBC,一个轻量级的分布式数据库中间件。本篇作为系列的第八篇文章,将重点探讨 数据治理(Data Governance) 和 高级功能,包括数据加密、影子表、SQL 审计以及 ShardingSp…...

今日行情明日机会——20250424

指数依然是震荡走势&#xff0c;接下来两天调整的概率较大 2025年4月24日涨停主要行业方向分析 一、主要方向 化工&#xff08;新能源材料&#xff09; • 涨停家数&#xff1a;8家&#xff08;最强方向&#xff09;。 • 代表标的&#xff1a; ◦ 中欣氟材&#xff08;3连板…...

Kubernetes 常用运维命令整理

目录 Kubernetes 常用运维命令整理一、集群管理二、Pod 和容器管理三、Deployment 和应用管理四、Service 和网络管理五、存储管理六、ConfigMap 和 Secret 管理七、资源使用与监控八、调度和容错九、Role 和权限管理十、清理资源 总结 Kubernetes 常用运维命令整理 Kubernete…...

【Python爬虫基础篇】--4.Selenium入门详细教程

先解释&#xff1a;Selenium&#xff1a;n.硒&#xff1b;硒元素 目录 1.Selenium--简介 2.Selenium--原理 3.Selenium--环境搭建 4.Selenium--简单案例 5.Selenium--定位方式 6.Selenium--常用方法 6.1.控制操作 6.2.鼠标操作 6.3.键盘操作 6.4.获取断言信息 6.5.…...

基于Vulkan Specialization Constants的材质变体系统

材质变体 所谓材质变体&#xff0c;指的是一份材质代码文件&#xff0c;最终对应的是多份运行时gpu程序。比如&#xff0c;shader代码里面有开关或者选项&#xff0c;不同的组合对应不同的最终gpu program。那么&#xff0c;所有的这些组合对应的gpu program&#xff0c;可以统…...

Langchain+RAG+向量数据库

加载数据 import osimport lancedb from langchain_community.document_loaders import TextLoader from langchain_community.embeddings import BaichuanTextEmbeddings from langchain_community.vectorstores import LanceDB from langchain_core.output_parsers import St…...

Stack和Queue和deque的讲解(底层实现 手撕版)

一.底层的基本思路 我们cpp中实现的栈和队列不同于我们数据结构c语言实现的栈和队列&#xff0c;c语言中实现的栈和队列都是通过一个数组指针的形式来完成&#xff0c;每个函数都需要写大量的代码&#xff0c;但是我们的cpp&#xff0c;就是通过函数模板 适配器来完成的。 我们…...

《Pinia 从入门到精通》Vue 3 官方状态管理 -- 插件扩展篇

使用插件扩展功能 可以同时使用多个插件&#xff08;插件“中间件式”机制&#xff09;一、使用多个插件的方式二、插件机制简图三、插件互不冲突的关键点四、实战示例&#xff1a;多插件组合使用五、组合使用注意事项推荐插件组合搭配方案&#xff08;实战模板&#xff09; 根…...

JavaScript 中的 Reflect 对象:深入理解与应用

JavaScript 中的 Reflect 对象&#xff1a;深入理解与应用 一、引言 在 JavaScript 不断发展的过程中&#xff0c;ES6 引入了许多新的特性和对象&#xff0c;其中 Reflect 对象是一个强大且实用的工具。Reflect 对象提供了一系列静态方法&#xff0c;这些方法与 Proxy 对象的…...

dirsearch 使用教程:详细指南与配置解析

dirsearch 是一款强大的开源命令行工具&#xff0c;用于对 Web 服务器进行目录和文件暴力破解。它通过扫描目标网站&#xff0c;尝试发现隐藏的目录、文件或潜在的敏感资源&#xff0c;广泛应用于渗透测试和安全审计。dirsearch 提供丰富的选项和灵活的配置文件支持&#xff0c…...

【C++基础知识】C++类型特征组合:`disjunction_v` 和 `conjunction_v` 深度解析

这两个模板是C17引入的类型特征组合工具&#xff0c;用于构建更复杂的类型判断逻辑。下面我将从技术实现到实际应用进行全面剖析&#xff1a; 一、基本概念与C引入版本 1. std::disjunction_v (逻辑OR) 引入版本&#xff1a;C17功能&#xff1a;对多个类型特征进行逻辑或运算…...

ctfhow——web入门214~218(时间盲注开始)

web入门214 #another:uwvwko import requestsurlhttp://b0c11589-31c9-4bf9-8b66-6b5a1fc08726.challenge.ctf.show/api/index.php flag str{-_1234567890qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM}for i in range(1,50):for j in str:# 查数据库# payload "…...

shell练习(2)

1.给脚本service.sh进行修改,当执行的时候要求输入(1、2、3、4、5)时安装对应的httpd、vim、wget、更换aliyum等功能&#xff0c;当输入错误 时提示应该输入正确的值但是不会退出。 [rootbogon yy]# cat service.sh #!/bin/bash while : do cat <<-EOF --------------…...

【GO语言小案例手记】基于GIN的简易代理网关

基于GIN的简易代理网关 背景目标开工依赖主体代码配置文件 后记 背景 正好最近对GO也有点兴趣&#xff0c;搞个小项目练练手。 目标 网关需要能够根据路由自动映射到服务支持轮询、加权轮询、随机轮询三种算法简单好理解好使用&#xff0c;最好一个配置文件就能跑起来网关本…...

Qt 入门 6 之布局管理

Qt 入门 6 之布局管理 对于一个完整的软件&#xff0c;布局管理时必不可少的。其会让界面中嗯嗯部件呈现一个整齐的排列&#xff0c;也可令其大小随着窗口界面的大小变换而变化Qt 主要提供了QLayout 类及其子类作为布局管理器&#xff0c;他们可以实现常用的布局管理功能&…...

Java技术体系的主要产品线详解

Java技术体系的主要产品线详解 Java Card&#xff1a;支持Java小程序&#xff08;Applets&#xff09;运行在小内存设备&#xff08;如智能卡&#xff09;上的平台。 Java ME&#xff08;Micro Edition&#xff09;&#xff1a;支持Java程序运行在移动终端&#xff08;手机、P…...

第四章: 服务集成抽象

Chapter 4: 服务集成抽象 &#x1f31f; 从上一章到本章 在第三章&#xff1a;传输机制中&#xff0c;我们学习了如何通过STDIO和SSE协议让LLM与不同服务器通信。现在想象这样的场景&#xff1a;你的AI助手需要同时操作本地文件和云端数据库。这时问题来了——如何让LLM像操作…...

高精度并行2D圆弧拟合(C++)

依赖库 Eigen3 GLM Ceres-2.1.0 glog-0.6.0 gflag-2.2.2 基本思路 Step 1&#xff1a; RANSAC找到圆弧&#xff0c;保留inliers点&#xff1b; Step 2&#xff1a;使用ceres非线性优化的方法&#xff0c;拟合inliers点&#xff0c;得到圆心和半径&#xff1b; -------…...

【防火墙 pfsense】1简介

&#xff08;1&#xff09; pfSense 有以下可能的用途&#xff1a; 边界防火墙 路由器 交换机 无线路由器 / 无线接入点 从OSI7层模型了解设备在典型网络结构中所处的位置。 &#xff08;2&#xff09;边界防火墙 ->要充当边界防火墙&#xff0c;pfSense 系统至少需要两个接…...

GPT-4o最新图像生成完全指南:10大应用场景与提示词模板

引言 OpenAI于近期推出的全新GPT-4o图像生成功能&#xff0c;代表了AI图像创作领域的重大突破。作为一个原生多模态系统&#xff0c;GPT-4o将文本理解和图像生成无缝整合&#xff0c;为创作者、教育工作者和专业人士提供了前所未有的视觉创作灵活性。本文将分享10个GPT-4o图像…...

32单片机——外部中断

STM32F103ZET6的系统中断有10个&#xff0c;外部中断有60个 1、中断的概念 中断是为使单片机具有对外部或内部随机发生的事件实时处理而设置的&#xff0c;中断功能的存在&#xff0c;很大程度上提高了单片机处理外部或内部事件的能力 eg&#xff1a;&#xff1a;你打开火&…...

《Pinia 从入门到精通》Vue 3 官方状态管理 -- 进阶使用篇

《Pinia 从入门到精通》Vue 3 官方状态管理 – 基础入门篇 《Pinia 从入门到精通》Vue 3 官方状态管理 – 进阶使用篇 《Pinia 从入门到精通》Vue 3 官方状态管理 – 插件扩展篇 目录 Store 的模块化设计4.1 多模块结构设计✅ 推荐目录结构&#xff08;中大型项目&#xff09; …...

HarmonyOs @hadss/hmrouter路由接入

参考文档&#xff1a;官方文档 在根目录oh-package.json5配置 {"dependencies": {"hadss/hmrouter": "^1.0.0-rc.11"} }加入路由编译插件 hvigor/hvigor-config.json文件 {"dependencies": {"hadss/hmrouter-plugin": &…...

第九节:性能优化高频题-首屏加载优化策略

路由懒加载&#xff1a;component: () > import(‘…’) CDN加速第三方库、Tree-Shaking移除未使用代码 前端首屏加载优化核心策略解析 一、路由懒加载&#xff1a;按需拆分代码块 实现原理 通过动态导入语法 import() 将路由组件拆分为独立代码块&#xff0c;仅在用户访问…...

ESP32_IDF_VScode安装多版本共存

ESP32_IDF_VScode安装多版本共存 一、安装离线版本idf 详情见文章&#xff1a;ESP32_IDF_基于win11的开发环境搭建 二、windows的VScode安装乐鑫插件 三、导入已经安装好的idf&#xff08;将VScode插件和本地安装的IDF绑定的一个关系&#xff09; 1、选择“配置ESP-IDF扩展”…...

JavaScript 的“积木”:函数入门与实践

引言&#xff1a;告别重复&#xff0c;拥抱模块化 想象一下&#xff0c;你在写代码时发现&#xff0c;有几段逻辑几乎一模一样&#xff0c;需要在不同的地方反复使用。你是选择每次都复制粘贴&#xff0c;还是希望能像搭积木一样&#xff0c;把这段逻辑封装起来&#xff0c;需…...