本人刚刚接触quartz,对于quartz的使用还不是很熟悉,遇到一个问题,每次向scheduler中添加一个任务时,需要一个jobDetail和一个trigger,在jobDetail中需要指定一个实现Job接口的类,然后根据trigger的方式执行Job类中的execute()方法;
问题来了,如果现在我需要添加一个统计的任务,我建立一个实现了Job接口的MyJob类,然后在execute()方法中写好统计代码,
实例化 JobDetail jobDetail = new JobDetail("job1222224",Scheduler.DEFAULT_GROUP, MyJob.class);此时,有一些参数需要外部指定,比如统计的数据库地址,用户名,密码,表名等,但是如果要有多个jobDetail来添加到scheduler中时,每个jobDetail所对应的Job类能否只有一个?如何能实现每个MyJob对应相应的参数?难道需要多个类似的MyJob类?我使用的是持久化的方式 :org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX另外,我想实现各个任务的启动,停止,暂停,删除等管理功能,
不知道该如何实现,请各位高人指点!谢谢!!!
问题来了,如果现在我需要添加一个统计的任务,我建立一个实现了Job接口的MyJob类,然后在execute()方法中写好统计代码,
实例化 JobDetail jobDetail = new JobDetail("job1222224",Scheduler.DEFAULT_GROUP, MyJob.class);此时,有一些参数需要外部指定,比如统计的数据库地址,用户名,密码,表名等,但是如果要有多个jobDetail来添加到scheduler中时,每个jobDetail所对应的Job类能否只有一个?如何能实现每个MyJob对应相应的参数?难道需要多个类似的MyJob类?我使用的是持久化的方式 :org.quartz.jobStore.class = org.quartz.impl.jdbcjobstore.JobStoreTX另外,我想实现各个任务的启动,停止,暂停,删除等管理功能,
不知道该如何实现,请各位高人指点!谢谢!!!
解决方案 »
- 数据库与session会话 大家帮忙分析下
- dwr的转换问题
- 2次转发参数找不到
- about callback in jQuery??
- 503错误~~
- LocalSessionFactoryBean的dataSource属性为什么能是 ProxyFactoryBean
- 在线求助---关于oracle和hibernate数据库连接错误
- Struts开发的b/s应用,客户端页面不刷新
- How to connect eclipse cvs depository by Eclipse 2.1?
- JSP:forward求解
- restful风格的查询功能!
- window.getSelection(),document.selection浏览器兼容问题
我想可以用Spring集成Quartz,这样的话job可以是一个pojo,它也由Spring的IoC容器管理。 这样的话,参数就好办了。你可以注入。 我下面给你个代码给你打个比方啊。package job;import java.text.SimpleDateFormat;
import java.util.Date;import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;@Component
public class SimpleJob {
@Value("maldinisky")
private String someText; public void execute() {
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
System.out.println(sdf.format(new Date()) + " " + this.someText);
}
}
你想要什么注入来就好了。这样的话,一个Job对应一个POJO,很好管理。我是这么用的。
于Spring的集成方式我就不啰嗦了,百度一下,你就知道。
这些东西在applicationContext.xml 里可以用 Cron表达式配置的。
我对Cron表达式的理解就是能实现比较灵活的按照相关的规则执行相关的Job,而我想要实现的是,比如一个列表,相关列为 “任务名称,任务状态,操作”,然后再操作里面有“暂停任务,启动任务,删除任务”等功能按键,点击实现相关的功能,我不知道Cron表达式是否能实现这样的功能,如果有的话,可否给我例子参考下?
确实如此,10个job对应10个pojo。不过我想这也不麻烦。你说呢?
能不能用程序控制和如何控制我不清楚,你可以参考一下quartz的官方网站和spring api文档。
http://www.quartz-scheduler.org/docs/index.html
scheduler.resumeJob("Job名称","组名");//恢复
scheduler.deleteJob("Job名称","组名");//删除总算解决了,结贴了