`

quartz之servlet启动方式

    博客分类:
  • util
 
阅读更多

1.复制org.quartz.quartz.properties或新建quartz_priority.properties到src目录下;

org.quartz.scheduler.instanceName = PushDBScheduler
org.quartz.scheduler.instanceId = one
orgorg.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 4
org.quartz.threadPool.threadPriority = 4
orgorg.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName = quartz_job.xml

 

2.新建quarzt_config.xml到src目录下;

 

<quartz>
	<job>
		<job-detail>
			<name>ScanItemsInDB</name>
			<group>Scanning</group>
			<job-class>com.testquartz.ScanDB</job-class>
			<job-data-map allows-transient-data="true">
				<entry>
					<key>testmode</key>
					<value>true</value>
				</entry>
			</job-data-map>
		</job-detail>
		<trigger>
			<cron>
				<name>t1</name>
				<group> Scanning </group>
				<job-name> ScanItemsInDB </job-name>
				<job-group> Scanning </job-group>
				<cron-expression>0 0/5 * * * ?</cron-expression>
			</cron>
		</trigger>
	</job>
</quartz>

 

3.新建log4j.xml文件到src目录下;

4.引入quartz的依赖包:

  • log4j-1.2.16.jar
  • quartz-2.1.7.jar
  • slf4j-api-1.6.1.jar
  • slf4j-log4j12-1.6.1.jar

5.新建Servlet:QuartzInit;

web.xml中配置:

 

<servlet>
   <servlet-name>QuartzInit</servlet-name>
   <servlet-class>com.xxx.util.QuartzInit</servlet-class>
   <load-on-startup>1</load-on-startup>
 </servlet>

6.servlet代码:

 

import static org.quartz.DateBuilder.evenMinuteDate;
import static org.quartz.JobBuilder.newJob;
import static org.quartz.TriggerBuilder.newTrigger;

import java.util.Date;

import javax.servlet.ServletConfig;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;

import org.quartz.JobDetail;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.Trigger;
import org.quartz.examples.example1.HelloJob;
import org.quartz.impl.StdSchedulerFactory;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class QuartzInit extends HttpServlet {
	private static Logger log = LoggerFactory.getLogger(QuartzInit.class);

	@Override
	public void init(ServletConfig cfg) throws ServletException {
		super.init();
		initScheduler(cfg);
	}
	
	protected void initScheduler(ServletConfig cfg) {
		try {
			SchedulerFactory sf = new StdSchedulerFactory();
			Scheduler sched = sf.getScheduler();
			Date runTime = evenMinuteDate(new Date());
			JobDetail job = newJob(HelloJob.class).withIdentity("job1",
					"group1").build();
			Trigger trigger = newTrigger().withIdentity("trigger1", "group1")
					.startAt(runTime).build();
			sched.scheduleJob(job, trigger);
			sched.start();
			try {
				Thread.sleep(65L * 1000L);
			} catch (Exception e) {
			}
			log.info("------- Shutting Down ---------------------");
			sched.shutdown(true);
		} catch (Exception e) {
			log.error(e.getMessage());
		}
	}

}

 7.定义我们的job类:HelloJob

 

package org.quartz.examples.example1;

import java.util.Date;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;

public class HelloJob implements Job {
	private static Logger _log = LoggerFactory.getLogger(HelloJob.class);

	public HelloJob() {
	}

	public void execute(JobExecutionContext context)
			throws JobExecutionException {
		_log.info("Hello World! - " + new Date());
	}

}

 

8.部署项目到服务器,启动服务器,后台就可以看到调度的执行情况。

分享到:
评论

相关推荐

    servlet整合quartz2所需quartz2包

    3. **初始化Scheduler**:在Servlet容器启动时,通过ServletContextListener或ServletContextAttributeListener初始化Quartz的Scheduler。在`contextInitialized`方法中,加载配置、创建Scheduler并注册Job和Trigger...

    quartz servletcontext配置资料

    在Servlet环境下,特别是在使用Spring MVC等框架时,Quartz与ServletContext的结合配置显得尤为重要,因为这能让我们更好地管理和监控后台定时任务。 ### Quartz简介 Quartz 提供了一个完全线程化的事件调度器,...

    quartz的helloworld

    这个简单的示例展示了Quartz的基本用法,但实际使用中,Quartz的强大之处在于其复杂的Trigger组合、可持久化的Job存储以及灵活的任务调度策略。你可以创建多个Job和Trigger,甚至可以设置依赖关系,使得某些Job只有...

    基于java的Quartz的实例

    2. 初始化调度器,创建Scheduler实例并启动。 四、创建作业和触发器 1. 创建自定义作业类:扩展`org.quartz.Job`接口,并实现`execute(JobExecutionContext context)`方法。 2. 定义触发器:根据需求选择合适的...

    使用Quartz实现定时功能

    1. **Job(作业)**:这是Quartz中的核心概念之一,它代表了要执行的任务。一个`Job`实例必须实现`org.quartz.Job`接口,并且重写`execute`方法来定义具体的任务逻辑。如果任务需要保存状态,则需要实现`StatefulJob...

    quartz1.8 范例

    - **Web加载Quartz任务**:在Web环境中,如Servlet容器(如Tomcat)中,Quartz任务通常作为监听器启动,或者在初始化Servlet时进行配置。这可以通过在web.xml中配置一个实现了`javax.servlet.ServletContextListener...

    quartz_web

    在Quartz Web中,用户可以通过以下方式操作定时任务: 1. **任务创建**:创建新的Job和Trigger,指定执行的类、参数、触发条件等。 2. **任务编辑**:修改已有的Job和Trigger的配置,如更改执行频率、添加新的数据...

    一个简单的quartz版helloWorld示例演示

    通过深入理解Quartz的工作原理和配置方式,我们可以创建出满足业务需求的精确定时任务。 总之,本示例展示了如何利用Quartz框架在Web环境中创建一个简单的定时任务,它每分钟的6秒倍数执行一次,输出"helloWorld"。...

    Quartz任务调度管理

    5. **启动调度器**:启动调度器以开始任务调度。 ```java scheduler.start(); ``` 6. **关闭调度器**:在应用结束时关闭调度器以释放资源。 ```java scheduler.shutdown(); ``` #### 五、Quartz的触发器类型...

    quartz定时任务,在web项目中的使用方法

    - 确保Web服务器(如Tomcat)支持Servlet 3.0或更高版本,因为Quartz通常通过Servlet容器来启动和管理。 2. **配置Quartz** - 创建一个配置类,例如`QuartzConfig.java`,用于配置Scheduler实例。在这里,你可以...

    quartz 在WEB中应用小结

    Quartz 设计为高可用性和容错性,当Job执行失败时,可以通过重试策略、错误处理Job或邮件通知等方式进行错误处理。另外,Quartz 还支持Job执行的持久化,即使服务器重启,也能恢复未完成的Job。 八、最佳实践 1. 尽...

    Quartz定时调度样例

    这个配置将 Quartz 的初始化Servlet设置为 load-on-startup 模式,以便在应用程序启动时自动初始化 Quartz。 quartz.properties 配置 在 resource 目录下,创建一个 quartz.properties 文件,用于配置 Quartz 的...

    web工程quartz的配置实例

    在Servlet容器启动时,你可以通过`Scheduler`实例将Job和Trigger绑定,完成任务的调度。首先,通过`SchedulerFactory`获取`Scheduler`实例,然后使用`scheduleJob()`方法添加Job和Trigger: ```java Scheduler ...

    Quartz 时间定时执行框架

    2. **配置Web应用启动器**:在`web.xml`中配置Quartz初始化Servlet,这样当Web应用启动时,Quartz也能随之初始化。具体配置如下: ```xml &lt;servlet&gt; &lt;servlet-name&gt;QuartzInitializer&lt;/servlet-name&gt; ...

    quartz在tomcat下配置使用

    在Servlet的初始化方法或Web应用的启动时进行初始化: ```java SchedulerFactory schedulerFactory = new StdSchedulerFactory(); Scheduler scheduler = schedulerFactory.getScheduler(); scheduler.start(); ...

    quartz.doc

    - **Servlet 定义**:定义一个用于初始化 Quartz 的 Servlet 类。 - **初始化参数**:指定 Quartz 的配置文件位置等。 - **加载顺序**:设置 `load-on-startup` 属性来确保在应用启动时自动加载并初始化 Quartz。 `...

    quartz1.6在webapp下应用

    4. **调度 Job**:在 Servlet 初始化或 WebAPP 启动时,通过 Scheduler 创建 JobDetail 和 Trigger,并将它们关联起来,然后 schedule 进行调度。 5. **监听器**:可选地,可以注册 JobListener 和 TriggerListener ...

    Quartz定时器web应用

    6. **Web应用整合**:在Servlet容器(如Tomcat)中运行Quartz,需要确保初始化和关闭Scheduler与Web应用生命周期同步。可以使用`ServletContextListener`监听器在Web应用启动时启动Scheduler,在停止时停止。 ```...

    spring+quartz+maven项目实例

    通过这个实例,开发者可以学习到如何在实际项目中集成Spring和Quartz,理解它们各自的职责和交互方式,以及如何利用Maven来管理项目依赖和构建流程。这对于构建高效、灵活的定时任务系统具有重要的实践意义。

    spring+quartz 动态任务方案

    3. **启动调度服务**:最后是启动 Quartz 调度服务,通常会在应用启动时通过一个 Servlet 来初始化调度器并启动任务。 #### 三、Spring + Quartz 动态任务方案详解 根据提供的代码片段,可以看出这是一个基于 ...

Global site tag (gtag.js) - Google Analytics