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"版本中,我们专注于Spring 3.1版本集成Quartz进行定时任务的管理。 Spring框架本身提供了TaskExecution和TaskScheduling模块,可以处理简单的定时任务,但当任务调度需求变得复杂时,如需要...
Quartz还支持多种高级特性,如并发性控制、集群部署、Cron表达式支持等,使得它在大型企业级应用中非常实用。对于需要对任务执行进行精确控制和管理的Java应用,Quartz是一个强大的工具。通过对"quartz-1.8.5.tar.gz...
quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar quartz-all-1.8.5.jar
quartz-jboss-1.8.6.jar quartz集群
Quartz 1.8.5 版本是这个框架的一个稳定版本,提供了可靠的时间调度功能,适用于各种规模的企业级应用。 Quartz 的核心特性包括: 1. **可扩展性**:Quartz 可以轻松地与任何应用程序服务器集成,并且支持多线程和...
这个压缩包包含了Quartz的三个不同版本:1.6.0、1.8.5以及2.2.1。每个版本的jar包都有其特定的功能和改进,下面是关于这些版本的详细知识: 1. **Quartz 1.6.0**: - Quartz 1.x系列是早期的版本,主要支持JDK 1.4...
1. **配置Quartz**: 在`quartz.properties`文件中,设置`org.quartz.scheduler.instanceName`以区别各个集群节点,同时启用集群模式,如`org.quartz.jobStore.isClustered=true`。 2. **Spring配置**: 创建一个...
quartz.dataSource.quartzDataSource.jndiName=java:jboss/datasources/QuartzDS quartz.scheduler.instanceName=MyScheduler quartz.jobStore.isClustered=true ``` 然后,定义定时任务。创建一个实现了`org....
Quartz是一个开源的作业调度框架,它完全由Java写成,并设计用于J2SE和J2EE应用中。它提供了巨大的灵 活性而不牺牲简单性。你能够用它来为执行一个作业而创建简单的或复杂的调度。
本示例"spring3+quartz1.6.4 集群示例"是将两者结合,以实现一个能够支持集群的定时任务管理解决方案。 1. **Spring 3.x 框架** Spring 3.x 是Spring框架的一个版本,它引入了许多新特性,包括对Java 5和6的支持,...
### quartz在集群环境下的最终解决方案 #### 背景与挑战 随着系统复杂度的提高以及业务需求的变化,越来越多的应用程序需要支持高可用性和可扩展性。为了满足这些需求,通常会选择将应用程序部署在集群环境中。...
Quartz集群需要将所有调度信息(如Job、Trigger)存储在一个共享的持久化存储中,以便所有集群节点都能访问。这通常通过实现`ISchedulerFactory`接口的`StdSchedulerFactory`类和数据库连接来完成。数据库可以选择...
总结起来,"Spring+Quartz定时集群支持"涉及到的知识点主要包括:Spring与Quartz的集成、Quartz的集群配置、`MethodInvokingJobDetailFactoryBean`的使用、数据库表的设计以及通过IHS等手段实现的任务调度。...
在分布式环境中,Quartz的集群功能可以实现高可用性和任务的负载均衡。以下是对"quartz支持集群的定时器任务"这一主题的详细阐述。 1. **Quartz基本概念** - **Job**:在Quartz中,Job是执行的具体任务,它定义了...
本篇将基于"quartz集群完整应用实例"来深入探讨Quartz的集群配置与实现。 Quartz的核心概念包括Job(任务)、Trigger(触发器)和Scheduler(调度器)。Job是执行的具体任务,Trigger定义了任务何时运行,而...
Spring Quartz 集群配置详解 在分布式系统中,定时任务的管理往往是一个重要的环节,Spring与Quartz的结合能够帮助我们实现复杂的工作调度。Quartz是一个开源的作业调度框架,它提供了高度可配置的定时任务执行能力...
本文章是关于springboot集成quartz集群的步骤,LZ亲测。