public class StartOrCloseScheduler implements Serializable{
/**
*
*/
private static final long serialVersionUID = -2266323478579408291L;
private static Logger myLogger = Logger.getLogger(StartOrCloseScheduler.class);
private static Scheduler sched = null;
/**
* 启动任务
* jobName: job名称
* jobGroupName: job组名称
* triggerName: trigger名称
* triggerGroupName:trigger组名称
*/
@SuppressWarnings("rawtypes")
public static void start(String jobName,String jobGroupName,
String triggerName,String triggerGroupName,
Class c, String str) {
try {
InitialContext ctx = new InitialContext();
sched = (Scheduler) ctx.lookup("Quartz");
System.out.println("Scheduler:" + sched);
} catch (NamingException e) {
e.printStackTrace();
}
JobDetail job = new JobDetail(jobName,jobGroupName, c);
System.out.println("JobDetail:" + job);
Trigger trigger = new CronTrigger(triggerName,triggerGroupName);
System.out.println("Trigger:" + trigger);
try {
((CronTrigger) trigger).setCronExpression(str);
sched.scheduleJob(job, trigger);
System.out.println("job:" + job);
sched.start();
} catch (Exception e) {
myLogger.error("开启一个任务"+jobName+e.getMessage());
e.printStackTrace();
}
}
/**
* 移除一个任务
* @param jobName: job名称
* @param jobGroupName: job组名称
* @param triggerName: trigger名称
* @param triggerGroupName: trigger组名称
* @throws SchedulerException
*/
public static void removeJob(String jobName,String jobGroupName,
String triggerName,String triggerGroupName) {
try {
InitialContext ctx = new InitialContext();
sched = (Scheduler) ctx.lookup("Quartz");
} catch (NamingException e) {
e.printStackTrace();
}
try {
//停止触发器
sched.pauseTrigger(triggerName,triggerGroupName);
//移除触发器
sched.unscheduleJob(triggerName,triggerGroupName);
//删除任务
sched.deleteJob(jobName,jobGroupName);
} catch (SchedulerException e) {
myLogger.info("移除一个任务"+jobName+e.getMessage());
}
}
}
相关推荐
Quartz 1.8.5 集群(jboss4.2.3 )
quartz-1.8.5.tar.gz quartz-1.8.5.tar.gz quartz-1.8.5.tar.gz
spring3.1定时任务:quartz-1.8.5(版本) 注:3.1版本只能用 quartz-1.8.5
quartz-jboss-1.8.6.jar quartz集群
spring4.0.6+quartz 2.2.3 集群示例
quartz在集群环境下的最终解决方案quartz在集群环境下的最终解决方案
Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵 活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。
quartz集群调度机制调研及源码分析,基于quartz 1.7版本
quartz-1.8.5.jar.zip
最近公司项目上线,需要把app部署在多台服务器上,但只能让其中一台服务器的job执行,一台服务器挂了,另一台还能继续执行job,通过网上查找资料,都是java工程的方式,不好部署并测试,经过二天辛苦整合,终于整理成...
1、若是部署多台机器,到了时间点,只有一台会执行,其他不会执行。 2、若多个节点其中一个scheduler执行job失败,将会被另外一个scheduler执行
本文章是关于springboot集成quartz集群的步骤,LZ亲测。
spring3+quartz1.6.4 集群示例源代码
spring 集成quartz定时任务 用数据库实现quartz的集群
自己弄了将近一天的成果。主要是修改MethodInvokingJobDetailFactoryBean这个类。
quartz所需jar包,包含以下3个版本。quartz-2.2.1jar、quartz-all-1.8.5jar、quartz-all-1.6.0jar。
一个基于springboot的quartz集群dome。 向http://localhost:9090/job/addjob注入3个参数 类名:(及时定时任务的类如:com.ybjdw.site.job.NewJob) 组名:随意 定时启动方法:如“0/3 * * * * ?”(每3秒启动一次...
quartz支持集群的定时器任务,使用数据库记录任务执行与否。