前言:
来到新的公司有段时间了。之前就一直CodingCoding,现公司虽然系统啊各方面没有阿里成熟,技术用的也不是很新,但正岗还是比外包岗位好吧,而且公司飞速发展感觉前景还是不错的。同事相处的也挺好,而且我已经是吃饭小分队的队长了。~.~。最近老大分配了个活,一个单节点系统的扩增升级为两台。说实话之前没做过~而且这个系统的SLB居然是要通过DNS系统轮训做的。该篇文章记录下遇见的问题以及解决方式:
1、定时任务
代码中有很多基于Spring@Scheduled实现的定时任务,如果不改造,两台机器可能会在同一时间同时跑这些定时任务,没有必要。所以要把这些定时任务的代码抽取出来。公司现如今没有DTS分布式定时任务系统。怎么实现呢?
解决方案:在其中的某一台机器配置Linux-Crontab计划任务来实现:
1.1、把所有的定时任务包装成HTTP接口,这里我按照类型分了多个HTTP接口,每个接口里又通过key参数区分不同的任务。
1.2、配置Crontab,定时通过curl命令发送HTTP请求去调用任务。
eg:0 */1 * * * curl http://xxxx.xxx.com/xxx/xxx 每隔一小时执行
常用命令:
crontab -e:编辑计划任务
crontab -l:列出现有的计划任务
less /var/log/cron:查询计划任务执行日志
注意:Crontab配置:wq后就即可生效。