cmd->golang->pipe
pipe()创建2个文件描述符,fd[0]可读,fd[1]可写
fork() 创建子进程 fd[1]被继承到子进程
dup2() 重定向子进程 stdout/stderr到fd[1]
exec() 在当前进程内,加载并执行二进制程序
模拟一下cmd调用
模拟调用cmd时,杀死bash进程
go开源Cronexpr库
Parse() 解析与校验Cron表达式
Next() 根据当前时间,计算下一次调度时间
模拟一下cron调用
执行结果
模拟多个cron调用
执行结果
利用 Etcd 的Lease租约特性来实现定时功能,同时通过Watch机制来实现多节点情况下只有一个节点执行该任务。通过定时任务库 Cron 的时间字符串解析器Parser来解析任务执行时间。
Etcd
Cron
源码链接