golang 多机定时任务管理系统

本文介绍了使用 Golang 开发的秒级定时任务管理系统,包括其特性如cron+功能、任务配置的平滑重载、IP与执行数限制等。文章深入探讨了cron的工作原理,并分享了在Go中实现类似功能的挑战和解决方案,如使用goroutine和exec包执行任务。此外,还详细讲解了如何在Golang中创建守护进程以及处理信号,以确保服务稳定运行。
摘要由CSDN通过智能技术生成

源码地址:

   https://github.com/zhenbianshu/gotorch

特色功能

   ·cron+,秒级定时,使任务执行更加灵活;

   ·任务列表文件路径可以自定义,建议使用版本控制系统;

   ·内置日志和监控系统,方便各位同学任意扩展;

   ·平滑重加载配置文件,一旦配置文件有变动,在不影响正在执行的任务的前提下,平滑加载;

   ·IP、最大执行数、任务类型配置、支持更灵活的任务配置;

 

技术要点:

cron+

   在实现类型cron的功能之前,我简单地看了一下cron的源码,源码在https://busybox.net/downloads/可以下载,解压后文件在miscutils>crond.c。

  cron的实现设计很巧妙,大概如下:

数据结构:

   1.cron拥有一个全局结构体global,保存着各个用户的任务列表;

   2.每一个任务列表是一个结构体CronFile,保存着用户名和任务链表等;

   3.每一个任务CronLine有shell命令、执行pid、执行时间数组cl_Time等属性;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值