- 博客(45)
- 收藏
- 关注
原创 流程引擎 Camunda工作流的退回起点 退回上一级
Camunda工作流的退回 以及退回上一级 操作的相关代码 , 解决了反复横跳式退回 导致的回退一级操作紊乱的问题
2022-03-09 18:06:38
11159
11
原创 Java 应用程序在Linux上的 延时自启
需求:希望挂到Linux上的java程序可以在机器重启之后自动运行,而不是需要去手动启动附: 程序的启动,重启,停止的 .sh脚本
2021-05-17 11:25:35
2317
10
原创 MySQL数据库备份脚本 定期备份 压缩
使用mysqldump命令备份数据库,gzip进行压缩.只保留固定数量的备份文件,逾期自动删除.1. 编写脚本 db_back.sh脚本内容:#!/bin/bash #保存备份个数,备份31天数据number=31#备份保存路径backup_dir=/home/mysqlbackup#日期dd=`date +%Y-%m-%d-%H-%M-%S`#备份工具back_tool=mysqldump#压缩工具ys_tool=gzip#将要备份的数据库database_name=test
2021-03-31 16:13:06
3603
3
原创 通过RabbitMQ的DIRECT模式以及死信队列实现延时任务
运用RabbitMQ的DIRECT模式以及死信队列实现延时操作以及不同间隔时间后重试一 、原理描述图解:一条绑定路由为【FOR_QUEUE1】的消息被发送到交换机【EXCHANGE】上RabbitTemplate.convertSendAndReceive("EXCHANGE","FOR_QUEUE1","我是一条消息");【EXCHANGE】根据自己身上队列绑定的路由,将这个消息发给了队列【QUEUE_NAME1】消费者代码在处理队列【QUEUE_NAME1】中的这条消息的时候,没有
2020-12-22 11:06:32
15393
12
原创 多类型设备统一建模:类型枚举路由与核心处理流程
多类型设备统一建模方案 本文提出了一种多类型设备统一建模方案,通过类型枚举路由和核心处理流程实现主数据统一保存。方案采用Facade模式作为入口,通过设备类型枚举路由到对应的处理器,实现了: 类型扩展性:通过枚举注册处理器类,支持多种设备类型 字段灵活性:使用JSON存储扩展字段,Profile类定义数据结构 职责分离:处理器负责校验,Common服务处理主表,Life服务管理寿命 统一入口:即使无扩展字段的设备也通过同一入口处理 方案包含关键组件: TypeEnum:类型枚举,注册处理器和Profile类
2026-07-22 00:09:33
206
原创 IPC&NVR GB28181 点播接入实践:按需拉流与 SIP 信令处理
问题决策国标信令从零成本高采用开源作为 SIP 平台底座信令与媒体分离WVP-Pro 管 GB28181 信令,ZLM 管 RTP 收流,REST + WebHook 协作与厂商 SDK 混淆国标走 WVP-Pro;私有能力(录像 SDK 等)另线,互不替代GB28181 设备上线REGISTER + Digest 认证,CallId 续订走快速路径GB28181 目录异步分包Catalog MESSAGE 查询 + 异步队列解析 XML + sync-status 轮询。
2026-07-21 22:46:50
209
原创 RTSP 拉流接入实践:ZLMediaKit 代理多厂商摄像头与 NVR 回放
本文探讨了使用ZLMediaKit(ZLM)实现RTSP拉流代理的完整方案,重点解决多厂商摄像头/NVR接入的技术难点。文章首先对比了海康、大华设备RTSP路径格式差异,指出大华设备URL中"&"字符需编码的特殊处理。随后分析了NVR回放场景下账号密码获取、时间参数传递、并发限制等关键问题。通过流程图展示了ZLM代理模式下业务服务与流媒体服务的交互逻辑,包括设备配置保存和用户点播两种触发路径的区别处理。文章还详细介绍了海康和大华设备的主辅码流生成规则,以及NVR通道取流时的厂商差异,为安防视频接入提供了实用
2026-07-21 22:45:29
339
原创 一套代码适配 MySQL、Kingbase 与达梦:数据源切换实践
本文介绍了如何在Spring Boot应用中实现一套代码适配MySQL、Kingbase和达梦数据库的数据源切换实践。核心思路是通过环境变量DB_TYPE统一控制数据库类型,并确保驱动、连接池、分页方言等组件作为一个整体切换。文章详细阐述了枚举定义数据库类型、数据源配置管理、驱动依赖处理等关键点,强调避免在运行时热切换数据库,而是通过不同部署配置实现数据库适配。这种方案既保证了应用的可移植性,又避免了维护多套代码的复杂性,适合需要支持国产数据库迁移的场景。
2026-07-20 12:39:58
323
原创 时序数据库 TDengine 在设备监测中的实际落地:从传感器上报到实时看板
TDengine设备监测应用实践摘要 本文介绍了TDengine在设备监测中的实际应用方案。针对烟感、温湿度、气体等多种传感器数据,提出了一套完整的时序数据处理链路: 数据模型设计:按设备类型拆分为不同超级表,采用"稳定指标拆列+原始JSON保留"的混合存储策略,平衡查询效率与灵活性。 写入流程:通过统一接口将业务对象转换为时序模型,自动提取Tag和Field,封装Schemaless写入逻辑,支持采集时间和接收时间的双时间戳处理。 查询优化:支持最新状态查询、时间窗口分析和告警聚合,结合业务库补充设备元数
2026-07-20 11:31:56
256
原创 设备在线离线状态变更
本文介绍了两种实现设备在线/离线状态管理的核心方案: HTTP心跳+延时离线:适用于周期性上报但无MQTT遗嘱的设备,通过心跳续期+延时检查机制实现状态更新 MQTT上线+遗嘱离线:适用于支持MQTT会话的设备,通过连接事件和遗嘱消息直接触发状态变更 两种方案最终汇聚到统一的updateDeviceOnlineState方法处理状态更新,确保缓存与数据库的一致性。HTTP方案采用三级时间参数(心跳间隔/离线阈值/检查延时)避免临界问题,而MQTT方案则依赖Broker事件驱动。该设计通过状态出口统一、处理逻
2026-07-17 14:14:45
350
原创 Jeecg前端高级查询 OR选项 不能生效 问题解决
Jeecg高级查询[OR(条件中的任意一个匹配)]选项不能生效问题解决问题描述:笔者在使用jeecg框架的高级查询插件时,发现在选择[OR(条件中的任意一个匹配)]作为匹配类型时,最后生效的却一直是[AND(所有条件都要求匹配)].搜索解决方案无果后,只能自己尝试解决.
2021-07-07 10:41:15
1549
原创 SuSE 12 linux 开发环境搭建 之 nginx安装与自启设置
Nginx1. 先检查依赖库是否安装rpm -qa | grep opensslrpm -qa | grep zlibrpm -qa | grep pcre2. 准备文件文件名:nginx下载链接:https://pan.baidu.com/s/1dkBq14s5qjKGyo37JVOQ6A密码:12343 安装依赖库安装openssl注:一行一命令,勿要拆分了mkdir /usr/openssltar -zxvf openssl-1.1.1-pre8.tar.gz
2021-03-17 15:13:28
3216
3
原创 SuSE 12 linux 开发环境搭建 之 redis安装与自启设置
Redis1. 文件准备文件名: redis-3.2.9.tar.gz下载链接:https://pan.baidu.com/s/1bFCJASFUKpVgL3XSP7vitQ密码:12342. 创建目录mkdir /usr/redis3. 解压文件,并挪移至指定目录tar -zxvf redis-3.2.9.tar.gzmv redis-3.2.9 /usr/redis4. 安装之cd /usr/redis/redis-3.2.9make验证是否安装成功 make test
2021-03-17 15:01:16
4462
6
原创 SuSE 12 linux 开发环境搭建 之 mysql安装
Mysql安装1. 文件下载文件名: mysql-5.7.23-1.sles12.x86_64.rpm-bundle.tar 和 my.cnf下载链接:https://pan.baidu.com/s/1qwGxunRhHSpxf06nBciXRw密码:12342. 准备文件mkdir /usr/mysqltar -zxvf mysql-5.7.23-1.sles12.x86_64.rpm-bundle.tar /usr/mysql/mv my.conf /usr/mysql/3. 按
2021-03-17 14:42:35
2159
2
原创 SuSE 12 linux 开发环境搭建 之 jdk安装
jdk安装1. 准备文件文件名: jdk-8u281-linux-x64.tar.gz下载链接:https://pan.baidu.com/s/1sq59EnaFHwM2yup93Yi4tg密码:12342. 创建目录mkdir /usr/java3. 解压文件,并挪移至指定目录tar -zxvf jdk-8u281-linux-x64.tar.gzmv jdk1.8.0_281 /usr/java/4. 配置环境变量编辑配置文件 vim /etc/profile在文件末尾添
2021-03-17 11:34:17
2945
5
原创 lambda表达式内出现异常无法throw抛出
问题描述今儿在使用lambda表达式时,lambda表达式内出现了异常,准备直接抛出,没想到却还是报错:由于博主lambda表达式用的比较少,刚看到这问题时,可以说是一脸懵逼.毕竟两边的提示可以说是前后矛盾啊.刷新几下编译器还是报错,就只能老老实实的找原因.问题原因所幸Java是一门比较成熟的语言,前辈们已经踩了足够的坑.之所以有这种现象是因为lambda表达式本身没有处理异常的机制 ,以至于遇到受检异常时,无法通过主动抛出来解决.但具体的也不是很清楚了,若有其他道友遇到这种问题,欢迎评论区
2021-02-24 16:16:32
2594
1
原创 阿里云服务器 安全组 防火墙 开放端口流程
在云服务上部署了程序之后,在外部访问时总是会遇到如下图的这种问题,一般都是由于端口未开放导致的.原因如下:在云服务器上部署的程序,外部调用的时候会通过两层验证,一层是云服务器提供商的验证,一层就是服务器上系统的防火墙.因而如果我们想在外部访问到程序接口,就需要通过这两层验证.一. 阿里云安全组找到对应的系统实例并选中.博主的实例就是在华北2中,选中后就可以获得实例的具体信息2. 通过{更多->网络和安全组->安全组配置}来开放需要的端口2. 新建或选中已有的安全组,点击配
2021-02-20 18:09:23
4616
3
原创 定时任务 Quartz @Scheduled注解中的 cron表达式 详解示例
定时任务的cron表达式Cron表达式对特殊字符的大小写不敏感,对代表星期的缩写英文大小写也不敏感。格式:秒 分 时 日 月 星期 年(可省略)以空格隔开? :该字符只在日期和星期字段中使用,它通常指定为“无特指的值”,相当于占位符;* :可用在所有字段中,表示对应时间域的每一个时刻,例如, 在分钟字段时,表示“每分钟”;- :表达一个范围,如在小时字段中使用“10-12”,则表示从10到12点,即10,11,12;, :表达一个列表值,如在星期字段中使用“MON,WED,FRI”,则表示星期
2021-02-18 18:24:47
8153
5
原创 Java 使用FTP上传文件 并 模拟接受
Java 使用FTP上传文件 并 模拟接受0. 导入相关依赖<!-- FTP --><dependency> <groupId>commons-net</groupId> <artifactId>commons-net</artifactId> <version>3.6</version> </dependency> <!-- Hutool:一个小而全的J
2021-02-07 16:44:43
965
5
原创 谷歌接口测试插件 Advanced-REST-client 的安装与使用
谷歌接口测试插件 Advanced-REST-client 的安装与使用1. 获取文件百度云盘链接密码:1234文件说明:2. 导入插件a. 谷歌浏览器输入 chrome://extensions/b. 选择【加载已解压的扩展程序】,选中文件Advanced-REST-client_v3.1.93. 加载插件a. 谷歌浏览器输入chrome://apps/b. 直接点击启动,也可以选择新建快捷方式来方便启动4. 可能遇到的问题由于没有联通外网,相关的配置文件无法加载,可以直接从准备
2021-01-25 11:22:06
5457
2
原创 Linux 删除指定目录下的指定文件
Linux 删除指定目录下的指定文件删除lib目录下的所有与rabbitmq相关的文件和目录find /usr/lib/ -name "rabbitmq" | xargs rm -rf删除根目录下的所有与rabbitmq相关的文件和目录find / -name "rabbitmq" | xargs rm -rf...
2021-01-06 15:15:42
2110
原创 Linux 下 RabbitMQ的安装
安装RabbitMQ1 配置语言环境1.1 卸载旧版本查看安装的erlang :# yum list | grep erlang卸载旧版本:# yum -y remove [要卸载的版本]示例:1.2 准备文件将说明文件提供的文件上传至:/data_disk/rabbitmq1.3 安装erlang切换目录至/data_disk/rabbitmq执行以下命令:# rpm -Uvh /home/download/erlang-21.2.3-1.el7.centos.x86_64.
2020-12-29 11:01:05
11520
5
转载 Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)
Springboot — 用更优雅的方式发HTTP请求(RestTemplate详解)
2020-12-23 17:03:40
1254
原创 在目标字符串左边补零,使之达到预期长度
在目标字符串左边补零,使之达到预期长度 /** * 在字符串的左边补零,使之达到指定长度 * 例子: 123 转化成 0123 * @param str 输入的字符串 * @param expLen 预期的字符串长度 */ public static String fillZero(String str, int expLen) throws Exception{ byte[] expByte = new byte[expLe
2020-12-11 17:08:00
5932
原创 js朴实无华的实现网页截图功能 小心promise 小心SecurityError
需求ie11 浏览器截取网页指定区域生成图片,拱用户另存为文件准备需要引入的js文件:html2canvas.js当ie版本过低提示promise相关的异常时 需要引入bluebird.js提取码都是:1234相关代码 需要引入的文件: <script src="/NT/resources/js/html2canvas.js"></script> 当ie版本过低提示promise相关的异常时 <script src="/NT/resources/js/b
2020-11-30 12:14:00
9184
原创 正则表达式 密码 需包含字母数字特殊字符
要求密码必须包含字母、数字和特殊字符,且长度要在8位以上方案var reg = /(?=.*[a-z_])(?=.*\d)(?=.*[^a-z0-9_])[\S]{8,}/i; 具体解释(?=.*[a-z_]) :匹配至少一个a-z和下划线中的字符(?=.*\d):匹配至少一个数字(?=.*[^a-z0-9_]):匹配至少一个非字母数字且非下划线的字符[\S]:匹配任意字符{8,}: 长度大于8/i: 无视大小写关于正则表达式的详细介绍:正则表达式知识详解...
2020-11-13 16:42:27
18825
原创 Node.js 的安装 以及NPM的 配置
Node.js 的安装 以及相关配置文件准备使用版本:node-v8.11.3-x64.msi链接: 百度云提取码:5g77具体步骤傻瓜式安装cmd控制台查看相关信息node -v 查看安装的node的版本信息npm -v 查看node附带的包管理工具 3. 由于npm使用的是外国的地址,下载较慢,需要使用nrm镜像下载npm install nrm -g 全局安装nrm包nrm -ls 查看所有的镜像PS: * 为当前正在使用的镜像,我们需要切换成国内的地
2020-11-11 18:06:18
9395
1
转载 Oracle 数据库表空间的使用情况
查看Orcale数据库表空间的使用情况SELECT UPPER(F.TABLESPACE_NAME) "表空间名",D.TOT_GROOTTE_MB "表空间大小(M)",D.TOT_GROOTTE_MB - F.TOTAL_BYTES "已使用空间(M)",TO_CHAR(ROUND((D.TOT_GROOTTE_MB - F.TOTAL_BYTES) / D.TOT_GROOTTE_MB * 100,2),'990.99') || '%' "使用比",F.TOTAL_BYTES "空闲空间(M
2020-10-30 14:12:58
1321
1
原创 ORCALE 删除用户 提示无法删除当前连接的用户 PLSQL
ORCALE 删除用户1、通过相关语句进行删除a. 直接删除: drop user xx cascade;b. 提示无法删除当前连接的用户 --锁定用户(防止再有其他连接产生) alter user XXX account lock; --查询进程号 (获取sid,serial;注意大小写) SELECT * FROM V$SESSION WHERE USERNAME='XXX'; --删除对应的进程 alter system kill session 'sid,serial' -
2020-10-30 10:52:04
16875
9
原创 运用远程工具MobaXterm 远程连接虚拟机上的CentOS7
在虚拟机上获取本机地址[root@localhost mysql]# ifconfig -a可以看到:,并做注释相关语句:alter table USER add (DAN VARCHAR2(10));comment on column USER.DAN is '段位';相关延伸:删除一个字段alter table USER drop column DAN ;...
2020-09-01 10:30:12
1704
原创 PLSQL提示:ORA-01658: 无法为表空间XXX段创建 INITIAL 区
PLSQL提示:ORA-01658: 无法为表空间XXX段创建 INITIAL 区如图:原因:原本分配的表空间不够了,需要进行扩充解决方案:设置表的空间可以自动扩充(也可以扩充指定大小的空间,可参照参考文章)步骤:获取表空间的存储位置select * from dba_data_files根据获取到的地址对表空间设置其自动扩充ALTER DATABASE DATAFILE ‘E:\ORADATA\NT\MOF.DBF’ AUTOEXTEND ON NEXT 200M MAXS
2020-09-01 10:16:07
9984
1
原创 DWR请求数据的方式异步变同步
问题:dwr请求信息默认是异步的,导致后台请求还没有返回数据,前台页面就已经构造完毕,造成的效果就是页面数据并没有实时刷新解决方案:将请求调整为同步要设置全局同步机制: DWREngine.setAsync(true);或者设置单次调用同步:Service.method(params, { callback:function(data) { … }, async:false });具体效果:原代码: GET_INFO_DWR.getInfo(id, function(data) {
2020-08-20 20:18:59
4734
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅