- 博客(641)
- 资源 (2)
- 收藏
- 关注
原创 使用shedlock实现分布式互斥执行
如果你不清楚shedlock,建议先阅读前序章节,再来查看本文。如果我们不在spring环境下,如何使用shedlock实现分布式互斥执行?我们可以使用shedlock为我们提供的DefaultLockingTaskExecutor来实现手动调用。
2024-07-17 14:23:24
492
原创 获取JVM虚拟机的内存和CPU核心数
如 -Xms2g 将堆的初始大小设置为2G,推荐配置与-Xmx的值相同,以避免堆内存动态调整的开销。-Xmx:设置Java堆的最大内存。如 -Xmx2g 将堆的最大大小设置为2G,推荐配置为系统可用内存的70-80%availableProcessors 可用逻辑处理器数,例如4核心8线程的cpu,实际处理核心为8个逻辑处理器。totalMemory 虚拟机从操作系统已经拿到的内存,通常不是一次就拿到所有的内存。freememory 虚拟机空闲内存,jvm已经拿到但是未用到的内存。运行时设定jvm参数。
2024-07-12 10:31:58
270
原创 mysql GROUP_CONCAT分组连接
由于存在用于没有填写性别,所以这里不能直接CONCAT,否则就像下面的情况,存在空值的行连接被丢弃。我们可以使用IFNULL将其转换。
2024-06-26 11:56:10
299
原创 lumbda常用操作
如果List转Map时,存在key的重复,则会报错,提示重复的key(java.lang.IllegalStateException: Duplicate key)此时需要定义处理key重复时的舍留,我们可以定义是保留前者还是后者。例如下图中,userList的顺序插入顺序是3,1,2,但是返回的顺序遍历结果是1,2,3,我们希望得到其原始顺序。有时候,我们希望得到其插入时的顺序,而不是无序的map,此时我们可以指定转换为LinkedHashMap。,当然我们也可以使用前面的filter过滤掉重复。
2024-06-26 09:44:17
343
原创 windows启用和禁用内存压缩
Windows操作系统的内存压缩是一种通过压缩和解压缩内存页面来减少内存使用量的技术。当系统的内存使用达到一定阈值时,Windows会将不常用的内存页面压缩为一个稳定的压缩文件,以释放更多的内存空间。内存压缩的主要目的是减少页面交换(即将内存页面从物理内存移动到硬盘上的过程),从而提高系统的响应速度。当系统需要访问被压缩的内存页面时,它们会被解压缩到物理内存中。这个过程在后台自动进行,并且对用户是透明的。内存压缩技术在Windows 10中首次引入,并且只适用于64位版本的操作系统。
2024-06-25 09:13:00
4454
原创 attempt to unlock lock, not locked by current thread by node id错误
当前线程没有被锁,但是企图去释放锁。判断是否已锁,且锁是否被当前线程持有。
2024-06-03 11:44:55
264
1
原创 session过期后iframe内嵌登录页问题
用户长时间未操作,session过期后,再次点击tab的时候,会在iframe中展示login页面。解决思路:在登录页面判断是否是顶级页面,如果使用top.location.href打开本链接即可。
2024-05-31 15:30:08
342
原创 获取request的请求ip
从RequestContextHolder 中获取当前HttpServletRequest,然后再获取ip。从Request 中获取ip。
2024-05-27 10:40:09
881
原创 Non-terminating decimal expansion; no exact representable decimal result.
BigDecimal 用于高精度的数学计算,这个异常翻译。RoundingMode.HALF_UP 表示四舍五入。意思就是这个除法除不尽,会得到一个无限小数,导致异常。格式换转换为字符串,设置保留精度。表示保留2位小数,四舍五入。
2024-05-13 10:01:09
4082
原创 Git基础(25):Cherry Pick合并指定commit id的提交
开发中,我们会存在多个分支开发的情况,比如dev,test, prod分支,dev分支在开发新功能,prod作为生产分支已发布。如果某个时候,我们发现某个bug在上线时未发现,但是之后需要即时修复这个bug,我们在test分支后修复了此问题,需要合并到prod分支,但是只需要合并修复的提交代码,不需要合并全部,那么我们就需要用到Cherry Pick命令。
2024-03-25 11:07:30
541
原创 Git基础(24):分支回退
将分支回退到之前的某个版本开发中,可能开发某个功能不需要了,或者想要回退到之前历史的某个commit, 放弃后来修改的内容。
2024-03-22 16:29:04
892
原创 ajax重复请求状态为已取消
错误原因是在form表单中使用了button标签并且增了点击事件,会导致请求被重复发起。点击按钮,打开浏览器控制台发现发出了重复请求。
2024-03-21 17:37:42
502
原创 项目启动错误Command line is too long. Shorten command line for XXXApplication
配置启动项环境页,Shorten command line 选择 JAR manifest即可。
2024-03-21 11:52:22
218
原创 单元测试错误Found multiple occurrences of org.json.JSONObject on the class path
【代码】单元测试错误Found multiple occurrences of org.json.JSONObject on the class path。
2024-03-21 11:39:08
904
1
原创 编译错误Refer to the generated Javadoc files in xxx apidocs dir
在pom.xml中添加跳过生成javadoc。
2024-03-19 10:24:53
467
原创 Idea中快速定位文件位置和复制文件路径
在文件上右键,点击Copy >> Copy Path ,然后选择自己需要的路径格式。打开文件后,点击 定位图标。搜索关键词,查找指定代码。
2024-03-14 10:21:22
2321
原创 JXLS导出复杂的Excel表格
官方文档:JXLS是一个用于生成Excel文档的Java库。它提供了一种基于模板的方式来生成Excel文档,使得开发者可以在模板中定义样式、公式和数据绑定等内容,然后通过填充数据来生成最终的Excel文档。使用JXLS,开发者可以通过简单的方式来生成复杂的Excel报表,而无需编写大量的代码。它支持各种常见的Excel功能,如合并单元格、设置边框、设置字体样式等,同时还支持数据绑定和公式计算等高级功能。JXLS采用Apache POI作为底层的Excel处理库,提供了方便的API来操作Excel文档。
2024-03-05 10:50:11
1565
原创 springboot基础(82):分布式定时任务解决方案shedlock
多节点或者多服务器拥有相同的定时任务,这种情况下,不同节点的相同定时任务会被重复执行。如何解决分布式定时任务重复执行问题?此刻我们可以引入分布式定时任务解决shedlock来解决这种定时任务重复执行的问题。Shedlock是一个基于Java的分布式锁库,用于解决分布式环境下的并发问题。它可以确保同一时间只有一个线程能够获取到锁,从而避免了多线程竞争导致的数据不一致或错误的问题。Shedlock的原理是在数据库中创建一个特殊的表,用于记录锁的状态和持有者信息。
2024-02-23 10:17:37
1355
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅