您的位置:首页 > 其它

任务调度器quartz与ssh框架的Web交互配置

2011-02-24 15:18 357 查看
在网上很多关于quartz的配置的,很多实例的任务都是固定的,特别是执行时间,不能满足系统的正常的需要.通过调研,解决了ssh页面和quartz交互的问题。quartz连接数据和spring连接数据库独立起来,spring连接hibernate配置的数据库,quartz连接quartz.properties配置的数据。

步骤如下:

(1)将quartz所需要的12张数据库表导入数据库

qrtz_calendars;
qrtz_fired_triggers;
qrtz_trigger_listeners;
qrtz_blob_triggers;
qrtz_cron_triggers;
qrtz_simple_triggers;
qrtz_triggers;
qrtz_job_listeners;
qrtz_job_details;
qrtz_paused_trigger_grps;
qrtz_locks;
qrtz_scheduler_state;

下载quartz所有的包,quartz-1.8.3.tar.gz,里面包含quartz所有的包和各种数据库的SQL

(2)配置quartz.properties配置,此文件要放到项目工程的classes文件下

可以根据直接需要,简单oracle数据库的配置如下:

#============================================================================
# Configure Main Scheduler Properties
#============================================================================

org.quartz.scheduler.instanceName = DefaultQuartzScheduler
org.quartz.scheduler.instanceId= AUTO
org.quartz.scheduler.rmi.export = false
org.quartz.scheduler.rmi.proxy = false
org.quartz.scheduler.wrapJobExecutionInUserTransaction = false

#============================================================================
# Configure ThreadPool
#============================================================================
org.quartz.threadPool.class = org.quartz.simpl.SimpleThreadPool
org.quartz.threadPool.threadCount = 10
org.quartz.threadPool.threadPriority = 5
org.quartz.threadPool.threadsInheritContextClassLoaderOfInitializingThread = true

#============================================================================
# Configure JobStore
#============================================================================

org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX
org.quartz.jobStore.driverDelegateClass = org.quartz.impl.jdbcjobstore.oracle.OracleDelegate
org.quartz.jobStore.useProperties =false
org.quartz.jobStore.dataSource=test
org.quartz.jobStore.tablePrefix = QRTZ_
org.quartz.jobStore.isClustered = false
org.quartz.jobStore.misfireThreshold = 10000
org.quartz.jobStore.clusterCheckinInterval =20000
#============================================================================
# Configure datastource
#============================================================================
org.quartz.dataSource.test.driver = oracle.jdbc.driver.OracleDriver
org.quartz.dataSource.test.URL = jdbc/:oracle/:thin/:@IP/:1521/:test
org.quartz.dataSource.test.user =test
org.quartz.dataSource.test.password =test

org.quartz.dataSource.test.maxConnections=500

(3)获取quartz的任务实例

scheduler = StdSchedulerFactory.getDefaultScheduler();

scheduler.start();

任务实例提供很多方法:

scheduler.scheduleJob(jobDetail,trigger); //添加任务

scheduler.rescheduleJob(trigger.getName(), trigger.getGroup(),trigger); //修改任务

当数据库中有此任务时,用此方法重新修改,如果用scheduleJob(jobDetail,trigger)则报错

scheduler.pauseTrigger(taskId, triggerGroup);//暂停触发器

scheduler.pauseJob(taskId, jobGroup);//暂停job

scheduler.unscheduleJob(taskId, triggerGroup);//删除触发器,删除前先暂停此触发器

scheduler.deleteJob(taskId, jobGroup);//删除job,删除前要先暂停此JOB

如有问题或疑问,可以加QQ:1062595510;非诚勿扰
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: