管理自动签到功能
发布于2022-03-07 22:32:20,更新于2022-09-06 23:06:45,标签:life 文章会持续修订,转载请注明来源地址:https://meethigher.top/blog最近开始跑步了,工作以后涨了40斤,吃得比以前在家可好的多了,又不锻炼,胖很正常。
争取超越以前的巅峰时刻!
我有很多定时任务,都是想要一个就写一个,虽然大部分代码都是拿来就用,但还是有点麻烦,而且不支持动态更新。
github上有一个签到项目挺好的,但是对于我来说,又不太适用。
就想着按我自己的需求自己实现一个。
- 基本定时功能。开销不能太大,选用定时任务线程池
- 动态更新签到数据。考虑到不能占用过多内存,犹豫适用sqlite还是缓存,最终决定要快速响应,所以牺牲空间,使用缓存。
- 权限控制。因为我不太擅长写页面,接口文档直接暴露出去了,但是使用AOP加了权限控制。
- 代码符合高内聚(模块尽量细分)低耦合(多模块之间关联尽量少)规则。相信看过我之前代码的,会发现就是一坨屎,所有的东西,都砸到一块了,不利于后期扩展。这次就想解决该问题,现在我如果想要新增功能,只需要新创建一个Runnable即可。
- 通知功能。目前支持邮件,想着接入QQ,还未实现。
老规矩,参考的文章放出来
- nohup: 忽略输入 Error: Unable to access jarfile【已解决】_lh155136的博客-CSDN博客
- 总结篇-定时调度任务的几种方式_蓝星花-CSDN博客_定时调度
- ScheduledExecutorService 使用_wangxuelei036的博客-CSDN博客_scheduledexecutorservice
- chrome 修改请求头的小工具 - 斜月三星一太阳 - 博客园
- idea Maven 多模块打包时提示 找不到符号_500Error-CSDN博客_idea maven打包 找不到符号
- springboot文档入口
- springboot2.5.2官方文档打包详解 Build
- HTTP method names must be tokens_Mr、温少的博客-CSDN博客
- 使用IDEA 创建 SpringBoot 多模块项目_程序媛的格子衫的博客-CSDN博客_idea创建多模块springboot项目
记录需要注意的问题。
查询模块结构
idea2019版本,项目名称右键-选择Diagrams-选择show diagrams-选择project module-右键后选择add module and library。
如果想要更直观的看,可以右键-选择layout-选择hierarchic group layout
整个模块的结构划分,我还是比较喜欢的。
打包
因为是多模块的,在子模块(被调用的模块,相当于是提供入口的模块)中,pom配置需要加入exec
1 | <build> |
在需要作为启动模块的,就保持默认即可,如果想要修改输出的jar包名称,可以这样配置
1 | <build> |
更详细的配置说明,参考上面参考的springboot2.5.2官方文档。
配置前端页面
如果使用Springboot直接打包前端页面,可以直接使用默认配置即可。可以查看源码。
如果不想使用默认配置,可以进行如下配置
1 | spring: |
AOP权限校验
aop注解依赖
1 | <!--解析切入点表达式--> |
创建注解
1 | //作用在类上 ({ElementType.METHOD}) |
配置aop切入点
1 |
|
在指定的接口方法上,直接添加注解即可。
1 | "查询一条", notes = "查询一条") (value = |
最后,启动项目
1 | nohup java -jar scheduled-task.jar >task.log 2>&1 & |
线程分析工具
linux中输入
1 | # 输出该pid的线程信息,并保存至thread.log |
然后使用在线的java检测工具世界级的堆Dump分析——Java、Android内存转储分析器,进行分析即可。
个人比较喜欢使用的工具,FastThread
打赏
若无法评论请科学上网