分布式调度任务程序
介绍
基于zookeeper实现的分布式定时任务程序。
软件体系结构
包括:
1.zookeeper
2.quartz
3 .集群
4.rabbitmq
5.springboot
6.redisson
说明
1 .是通过集群内置的选举系统操作选举指挥。
2 .主注册日程任务
一旦访问了工作器,就开始向mq发送任务。
使用
1 .配置当前在AbstractInitParam类中死亡的zookeeper的连接地址,并在resources/properties中配置redis和rabbitmq。
2 .要创建计划任务,必须使用@Schedule注释类、@ScheduleGetBeanFromMethod注释Bean方法。 具体来说,请查看com.l.scheduleserver.exampleschedulebean包下的示例。
只有一个读取器,所有其他新访问都是工作器,工作器动态访问。
使用方法说明
当前程序只完成了分布式分配和注册调度任务的获取,调度任务只能写在Java类中继承Job接口。
剩下的完成项目:
1.zookeeper连接配置的后续支持: properties格式解决。
2 .添加报警通知:邮件通知。
3 .添加用于搜索打印日志的elasticsearch,降低维护成本。
4 .执行新脚本(最高优先级)。
目前的问题
1 .目前只有一个主控,注册的任务太多会遇到瓶颈。
2 .目前还没有办法同步mq中的请求,而是在任务执行过程中反复调用。
3 .目前只能写代码的定时任务,界限太大了。 当前模式传输模式必须针对sql脚本、shell脚本等。 (目前这还需要学习,无法实现)
V1.0
主要逻辑已初步完成。
V1.1
更改传输逻辑,注册原始http调用,改为将任务发送到mq,工作器监听执行。