Linux-crontab定时任务

前言:

来到新的公司有段时间了。之前就一直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命令详解

注意:Crontab配置:wq后就即可生效。

2、上传的相关文件

系统有很多之前上传的文件,公司并没有专门的分布式文件存储系统,这些文件就保存在当前机器的Tomcat中。如果需要扩增一台。那么这些文件必须进行Copy一份到新的机器中,否则应用就附件相关功能就会有问题。那么怎么做呢?难道一个文件一个文件SCP(远程Copy)?

解决方案:在老的机器上安装NFS实现文件夹的远程共享,本地端的系统中来看,那个远程主机的目录就好像是自己的一个磁盘分区目录一样。

由于运维同学不给Root权限,没办法自己在测试机器上安装NFS了。比较可惜。但起码思路打开了。也算是一种收获把。

NFS服务器搭建与配置

3、问题

3.1、Crontab配到哪一台机器呢?配到其中某一台,如果这一台Down掉了,不就尴尬了。运维小姐姐给的方案是两台都配上,其中一台先注释掉,出问题了,再打开。这解决方案我也醉了。那么问题又来了。

3.2、如何监控到Crontab定时任务的正常执行呢?

你可能感兴趣的:(开发总结)