获得徽章 0
OPPO Color 系统真不错,我的是低端机型,都可以升级到最新版本,而且更重要的是感觉流畅多了
4
用 syslog 做 Java 日志仓库挺好的,客户端:github.com 服务端 github.com 日志解析器 github.com
展开
评论
了解 PAKE(Password-Based Authenticated Key Establishment Protocol) 的协议协商加解密的密钥。中文叫做 口令认证密钥交换协议。downloads.bouncycastle.org www.cnblogs.com
展开
sp42_frank于2025-12-19 09:48发布的图片
1
IDE 自带的 Local History 记忆功能真好,除了 Git 之后还可以兜底,无论 IDEA 或 Eclipse 都有,确实不错
6
现在前端网页真的要好好优化内存占用 动不动一张页面2g页面 伤不起啊
10
图片转 icon,不少在线服务的转换,得到的 icon 文件 无比巨大,我输入4k 图标,返回120kb icon 文件,无语。找到一个压缩比大,转换的文件很小:www.aconvert.com
评论
我的 Vue3 采用 Vite 构建。先在 windows host 文件中自定义域名映射 127.0.0.1 local.robot.com,然后在 Nginx 中配置:
server {
listen 80;
server_name local.robot.com;

location / { # 前端 UI
proxy_pass http://localhost:5173/; # 代理到后端 API
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
以便访问 Vite 运行的开发 web 服务器(npm run dev 执行),同时配置了 vite.config.ts 中的 server.allowedHosts为'local.robot.com',这样我就可以在浏览器通过local.robot.com观察开发的页面,但是浏览器控制台报错:client? [sm]:745 WebSocket connection to 'ws://local.robot.com/?token=y1DST1Dtv4XL' failed: [vite] Direct websocket connection fallback.
方案:
你需要在 Nginx 配置中添加一个专门处理 WebSocket 连接的 location 块。


location / {
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
}
展开
评论
Java 延时任务
通俗地讲,一个定时器就搞定。但实际来说要考虑的问题很多,例如线程安全、并发之类的。

# 时间轮算法实现

1996 年 George Varghese 和 Tony Lauck 的论文《Hashed and Hierarchical Timing Wheels: Data Structures for the Efficient Implementation of a Timer Facility》中提出了一种时间轮管理 Timeout 事件的方式。其设计非常巧妙,并且类似时钟的运行,如下图的原始时间轮有 8 个格子,假定指针经过每个格子花费时间是 1 个时间单位,当前指针指向 0,一个 17 个时间单位后超时的任务则需要运转 2 圈再通过一个格子后被执行,放在相同格子的任务会形成一个链表。

相比 DelayQueue 的数据结构,时间轮在算法复杂度上有一定优势,但用时间轮来实现延时任务同样避免不了单点故障。

# 参考
- [如何实现延迟任务,这11种方式才算优雅!](www.cnblogs.com)
- [JAVA中延时任务的几种实现方式 ](ost.51cto.com)
- [延迟任务的实现总结](www.cnblogs.com)
- [Java延时订单处理(上)- - 抛砖引玉](blog.csdn.net) DelayQueue,参考了这个
- [基于Redis实现DelayQueue延迟队列设计方案(附源码)](blog.csdn.net)
展开
评论
当前 SqlMan 使用的 Spring 自带的表达式引擎 SpEl,功能各方面都不错,就是有个依赖的包袱:单纯看 SpEl 的模块 spring-expression 的话,大小是1.3MB左右。但是其还依赖了 spring-core 和 spring-jcl,再含这两个的话,大小 7.4MB左右。作为一个本身精巧的数据库工具却依赖那么大的家伙,好像有点说不过去。于是我考虑别的表达式引擎,也没啥轻量级的,连最熟悉的老朋友 JUEL(JSP 时代的表达式)都600kb~ juel.sourceforge.net github.com 没办法,自己写吗?曾经写过 JSON 解析器,这难度应该不比 JSON 的大,只是比较耗费时间和脑力……(不错的选项文章:《Java表达式引擎选型调研分析》developer.jdcloud.com
展开
评论
重构过后,干净、清晰、灵活的代码,真的令人心情愉悦,喜不自胜
31
从业十年 面向对象编程 oop 至今未得其门径而入 是我太愚钝 抑或 oop 太高深?
6
Java后端服务明显变慢诊断思路
sp42_frank于2025-10-30 13:01发布的图片
1
我擦~同事送的理光 Aficio SP 1200 打印机居然完美使用,粉盒 可以看看这个 detail.tmall.com
评论
下一页
个人成就
文章被点赞 56
文章被阅读 5,756
掘力值 669
收藏集
0
关注标签
8
加入于