golang作为一个工程性很强的语言,本示例将示例一个golang定时任务从开发到部署的整个过程。
一.首先,创建项目结构
本示例定时任务主要使用 github.com/robfig/cron
本示例启动了三个定时任务
1.是每天早上8点
2.是每隔5分钟执行一次
3.是每隔15分钟执行一次
二.golang的编译
本次编译是在linux系统下,注意和mac下的区别。
go build -o Order_Cron fm_order_cron/*.go
编译后生成的文件为Order_Cron文件。类似于windows下的exe文件。
执行 nohup ./fm_Order_Cron >Order_Cron_log 2>&1 &
将日志记录在Order_Cron_log文件中
如需要重新启动,执行ps aux | grep ‘Order_Cron’
然后执行 kill 1755268
执行nohup ./fm_Order_Cron >Order_Cron_log 2>&1 & 启动该服务。
三.golang在定时任务执行数据库操作时,要注意数据库链接不需要添加关闭。否则可能在下次执行时,数据库已经关闭,导致程序不能运行。
如图
但凡定时任务时操作数据库相关的服务时,defer db.Close() 要谨慎使用或者不用