有没有开源的java项目,通过web页面能控制多个定时任务的启动,修改定时时间?

程序猿_哲 发布于 2014/07/04 14:52
阅读 4K+
收藏 3

最近公司写了一些定时任务,用的springframe注解方式的Scheduled,但是每次修改定时时间都很麻烦,还得改项目,打包,发到服务器,再运行,感觉无比麻烦,尤其是任务很多的时候

想从这些繁杂的重复劳动出出来,想问下有没有能通过web页面管理的定时任务的开源项目?

或者有没有牛人直接告诉我大概应该怎么实现?我怎么在spring的生命周期内,动态的开启关闭一个定时任务?给个思路就行,大概说说用到的技术,不胜感激

加载中
1
首席搬砖工程师
首席搬砖工程师
 quratz的JobStoreTX 模式,也是在数据库中建表保存你的定时任务,还支持集群,你只需要自己写页面添加任务就可以,根本不需要再去打包发布
0
泥沙砖瓦浆木匠坊
泥沙砖瓦浆木匠坊

http://www.cnblogs.com/Alandre/p/3819366.html

明显任务调度

0
程序猿_哲
程序猿_哲

引用来自“泥沙砖瓦浆木匠坊”的评论

http://www.cnblogs.com/Alandre/p/3819366.html

明显任务调度

多谢,我看看
0
F_L_F
F_L_F

如果不需要精确到秒的任务,我之前也有这么个项目,数据库中每条任务一条记录(字段大概如下:id,任务名,cron表达式,状态(停用、启用),下次执行时间),spring里只配置一条任务,每分钟(开始说了不需要精确到秒,你若要到秒,这里就每秒检测一次,但是有点过于频繁了)用来检测任务表是否有任务要执行(对比下次执行时间字段),有,执行,并且根据cron字段更新下次执行时间;当然,每次新增、修改cron,必须初始下次执行时间。

同时提供你个方法:

/**
	 * 给定cron表达式,获取下次触发时间
	 * @param cronExpression
	 * @return
	 */
	public static Date nextTriggerTime(String cronExpression){
		Date date = new Date();
		CronSequenceGenerator csg = new CronSequenceGenerator(cronExpression);
		return csg.next(date);
	}



0
程序猿_哲
程序猿_哲

引用来自“F_L_F”的评论

如果不需要精确到秒的任务,我之前也有这么个项目,数据库中每条任务一条记录(字段大概如下:id,任务名,cron表达式,状态(停用、启用),下次执行时间),spring里只配置一条任务,每分钟(开始说了不需要精确到秒,你若要到秒,这里就每秒检测一次,但是有点过于频繁了)用来检测任务表是否有任务要执行(对比下次执行时间字段),有,执行,并且根据cron字段更新下次执行时间;当然,每次新增、修改cron,必须初始下次执行时间。

同时提供你个方法:

/**
	 * 给定cron表达式,获取下次触发时间
	 * @param cronExpression
	 * @return
	 */
	public static Date nextTriggerTime(String cronExpression){
		Date date = new Date();
		CronSequenceGenerator csg = new CronSequenceGenerator(cronExpression);
		return csg.next(date);
	}



这个靠谱!相当于把每个任务的名字和id,时间设置放到数据库中,每次检索,然后根据检索结果执行对应任务id的方法,只维护一个表就可以了,不错!

我再想一个更简便的方式,把写好的任务编译成class后,上传到一个目录,然后没隔一分钟扫描下,不知道行不行,我试下

0
首席搬砖工程师
首席搬砖工程师
quratz完全可以实现你的功能
0
MiaoXG
MiaoXG

以前做过这个功能,quartz自身就可以实现,可以配置内存方式或者数据库方式。

0
zzuqiang
zzuqiang
我也在寻找
返回顶部
顶部