摘要: 很多时候,我们需要定时任务实现一些诸如刷新,心跳,保活等功能。这些定时任务往往逻辑很简单,使用定时任务的框架(例如springboot @Scheduled)往往大材小用。 下面是一个定时任务的典型写法,每隔30s发送心跳 public static void main(String[] args) 阅读全文
posted @ 2023-02-21 15:26 时光之末 阅读(12204) 评论(0) 推荐(2)
摘要: ##背景 在高并发的场景中,我们通常会使用缓存提升性能。在使用springboot cache时,我们通常会使用基于JSON的序列化与反序列化。 JSON具有可读性强,结构简单的特点,使用灵活。 但是JSON体积大,占用redis内存,同时增加网络开销,使用gzip压缩可以将体积缩减到原来的十分之一 阅读全文
posted @ 2023-02-17 17:15 时光之末 阅读(880) 评论(0) 推荐(0)
摘要: 设想这样一个场景:从网络流中读取文件到硬盘中并计算文件的md5值。通常的做法是先将文件保存下来,再计算文件的md5,但这样会一共会出现三次I/O,一次网络I/O,两次磁盘I/O。 导致额外磁盘I/O的写法 import org.apache.commons.io.IOUtils; import or 阅读全文
posted @ 2021-09-09 13:17 时光之末 阅读(612) 评论(0) 推荐(0)
摘要: 背景 笔者曾供职于某信息安全公司,接到过一个需求,提取文档中的文本以供后续分析。tika是apache开源的解析文档内容的组件,应用十分广泛。tika几乎支持你能想到的所有文档格式,docx , pptx , xlsx , pdf, zip , rar , tar 等。 tika本身只是一个门面,不 阅读全文
posted @ 2021-09-07 22:21 时光之末 阅读(1927) 评论(2) 推荐(0)
more_horiz
keyboard_arrow_up light_mode palette
选择主题
点击右上角即可分享
微信分享提示