用quartz实现自动任务执行
需求:系统里有一任务,需要定时执行
有一开源项目可以解决此类问题,拿来
1. 下载 到google里搜索 quartz down之
2. 加开发包quartz.jar到你的环境,至于怎么配置不多讲,自己动手。
3. 在web.xml里加入
<servlet>
<servlet-name>QuartzInitializer</servlet-name>
<servlet-class>
org.quartz.ee.servlet.QuartzInitializerServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
4. 编写要定时实行的代码。
小例子,你可以写的无比复杂根据你的需求
package test.job;
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class Myjob implements Job
{
public void execute(JobExecutionContext context)
throws JobExecutionException
{
System.out.println(“*********执行了定时任务操作*********”);
}
}
5.编写quartz_reminder.xml
<?xml version="1.0" encoding="UTF-8"?>
<quartz xmlns="http://www.opensymphony.com/quartz/JobSchedulingData"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opensymphony.com/quartz/JobSchedulingData
http://www.opensymphony.com/quartz/xml/job_scheduling_data_1_5.xsd"
version="1.5">
<job>
<job-detail>
<name>Job_myjob</name>
<group>DEFAULT</group>
<job-class>com.job.Myjob</job-class>
</job-detail>
<trigger>
<cron>
<name>Trigger_job</name>
<group>DEFAULT</group>
<job-name>Job_myjob</job-name>
<job-group>DEFAULT</job-group>
<cron-expression>0 0/10 * * * ?</cron-expression>
</cron>
</trigger>
</job>
</quartz>
设置每10分钟执行一次,其他设置,请搜索其写法,呵呵
6.编写quartz.properties
#
# Configure Main Scheduler Properties
#
org.quartz.scheduler.instanceName = TestScheduler
org.quartz.scheduler.instanceId = one
#
# Configure ThreadPool
#
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 5
org.quartz.threadPool.threadPriority = 4
#
# Configure JobStore
#
org.quartz.jobStore.misfireThreshold = 5000
org.quartz.jobStore.class = org.quartz.simpl.RAMJobStore
# ===========================================================================
# Configure SchedulerPlugins ===============================================
# ===========================================================================
org.quartz.plugin.triggHistory.class = org.quartz.plugins.history.LoggingTriggerHistoryPlugin
org.quartz.plugin.triggHistory.triggerFiredMessage = Trigger{1}.{0}firedjob{6}.{5}at: {4,date,HH:mm:ssMM/dd/yyyy}
org.quartz.plugin.triggHistory.triggerCompleteMessage = Trigger{1}.{0}completedfiringjob{6}.{5}at{4,date,HH:mm:ssMM/dd/yyyy}withresultingtriggerinstructioncode:{9}
org.quartz.plugin.jobInitializer.class = org.quartz.plugins.xml.JobInitializationPlugin
org.quartz.plugin.jobInitializer.fileName =/quartz_reminder.xml
org.quartz.plugin.jobInitializer.overWriteExistingJobs = false
org.quartz.plugin.jobInitializer.failOnFileNotFound = true
org.quartz.plugin.shutdownhook.class = org.quartz.plugins.management.ShutdownHookPlugin
org.quartz.plugin.shutdownhook.cleanShutdown = true
7.把quartz_reminder.xml和quartz.properties放到WEB-INF/classes下
8.OK,启动你的应用服务器,一会查看执行结果。。。
over