我有一个方法,它返回一个名为findItemByIdendDate()的项列表,该列表在mngtimpl.java类中找到。现在,我想每隔一段时间执行一次这个方法,每小时让我们说,到目前为止,我做了如下的工作:
这是cronschedule.java
import org.quartz.CronTrigger;
import org.quartz.Scheduler;
import org.quartz.SchedulerFactory;
import org.quartz.impl.StdSchedulerFactory;
import org.quartz.JobDetail;
public class CronSchedule {
public CronSchedule ()throws Exception {
SchedulerFactory sf=new StdSchedulerFactory();
Scheduler sched=sf.getScheduler();
JobDetail jd=new JobDetail("job1","group1",CronJob.class);
CronTrigger ct=new CronTrigger("cronTrigger","group2","0 * * * * ?");
sched.scheduleJob(jd,ct);
sched.start();
}
public static void main(String args[]){
try{
new CronSchedule(); //Class where cron is created
}catch(Exception e){}
}
}
现在这个我有问题。这个类是基于时间约束(*in括号)从上面的类中调用的,它执行mngtimpl类的方法。
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import com.rosa.MngtImpl;
public class CronJob implements Job {
public void execute(JobExecutionContext arg0) throws JobExecutionException {
try {
MngtImpl pers = new MngtImpl();
pers.findItemByPIdEndDate();
} catch (Exception e) {
e.printStackTrace();
}
}
}
下面是我试图从上面的类中调用的方法。此方法位于名为mngtimpl.java的类中
public List<Long> findItemByPIdEndDate() throws Exception {
List<Long> list = null;
try{
Session session = sessionFactory.getCurrentSession();
Query query = session.getNamedQuery("endDateChecker");
list = query.list();
}catch (HibernateException e){
throw new DataAccessException(e.getMessage());
}
return list;
}
现在我想做的就是。我需要基于一定的时间(我可以随时指定)运行上述方法。我需要在bean工厂XML文件中创建一个bean,它实际实例这个调度器并调用这个方法,我尝试通过从cronscheldule.java调用cronjob.java来实现这一点,cronscheldule.java从另一个类调用方法,我创建了一个bean,这个bean可以工作,也可以不工作。
<bean id="cronSchedule" class="com.mypackage.CronSchedule">
</bean>
但是它并没有像我预期的那样工作,而且相当复杂,我可以在代码方面得到一些帮助吗?谢谢你
我遇到以下例外情况:
java.lang.NullPointerException 11:10:46,410 ERROR [STDERR]
at com.packftc.RulesManager.exception(RulesManager.java:25) 11:10:46,410 ERROR [STDERR]
at org.drools.agent.RuleAgent$2.run(RuleAgent.java:442) 11:10:46,410 ERROR [STDERR]
at java.util.TimerThread.mainLoop(Unknown Source) 11:10:46,410 ERROR [STDERR]
at java.util.TimerThread.run(Unknown Source)
这显然是一个错误的方法,到目前为止,我尝试过类似Zilion的方法:这里是我试图用简单的词来做的,我想从mngtimpl类中执行findintembypidendDate()方法,每分钟都要说一次。方法运行正常。我编写了一个测试,它通过了测试。那我现在该怎么办?谢谢你