本文整理汇总了Java中org.quartz.Scheduler.isStarted方法的典型用法代码示例。如果您正苦于以下问题:Java Scheduler.isStarted方法的具体用法?Java Scheduler.isStarted怎么用?Java Scheduler.isStarted使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.quartz.Scheduler
的用法示例。
在下文中一共展示了Scheduler.isStarted方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: schedulerStart
import org.quartz.Scheduler; //导入方法依赖的package包/类
/**
* 启动
* @param schedulerName
* @throws SchedulerException
*/
public void schedulerStart(String schedulerName) throws SchedulerException {
Scheduler scheduler = this.getAssertScheduler(schedulerName);
if (!scheduler.isStarted()) {
scheduler.start();
}
}
示例2: doHandleRequest
import org.quartz.Scheduler; //导入方法依赖的package包/类
@Override
protected ModelAndView doHandleRequest(HttpServletRequest req,HttpServletResponse res) throws Exception {
SimpleDateFormat sd=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Scheduler scheduler=instanceDetection.getScheduler();
StringBuffer sb=new StringBuffer();
sb.append("<strong>Status</strong>:");
if(scheduler.isInStandbyMode()){
sb.append("Standby");
}
if(scheduler.isShutdown()){
sb.append("Shutdown");
}
if(scheduler.isStarted()){
sb.append("Started");
}
sb.append("<br>");
for (String groupName : scheduler.getJobGroupNames()) {
for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {
JobDetail jobDetail=scheduler.getJobDetail(jobKey);
sb.append("<strong>JobClass:</strong>");
sb.append(jobDetail.getJobClass().getName());
Trigger trigger=scheduler.getTriggersOfJob(jobDetail.getKey()).get(0);
sb.append("<br><strong>PreviousFireDate:</strong>");
if(trigger.getPreviousFireTime()!=null){
sb.append(sd.format(trigger.getPreviousFireTime()));
}
sb.append("<br><strong>NextFireDate:</strong>");
if(sd.format(trigger.getNextFireTime())!=null){
sb.append(sd.format(trigger.getNextFireTime()));
}
if(trigger instanceof CronTriggerImpl){
CronTriggerImpl cron=(CronTriggerImpl)trigger;
sb.append("<br><strong>CronExpression:</strong>");
sb.append(cron.getCronExpression());
}
}
}
res.setContentType("text/html; charset=utf-8");
PrintWriter pw=res.getWriter();
pw.write(sb.toString());
pw.flush();
pw.close();
return null;
}
示例3: runBusinessJobInCurrentInstance
import org.quartz.Scheduler; //导入方法依赖的package包/类
private void runBusinessJobInCurrentInstance() throws Exception{
if(!isRunBusinessJob()){
return;
}
Scheduler scheduler=schedulerService.getCurrentScheduler();
if(scheduler!=null && scheduler.isStarted()){
return;
}
String currentInstanceName=schedulerService.getJobInstanceName();
String clusterJobInstanceNames[]=getClusterJobInstanceNames();
Session session=this.getSessionFactory().openSession();
boolean runScheduler=true;
try{
Query query=session.createQuery("from "+Heartbeat.class.getName()+" b where b.applicationName=:applicationName order by b.date desc");
@SuppressWarnings("unchecked")
List<Heartbeat> heartbeats=query.setString("applicationName",schedulerService.getJobApplicationName()).setMaxResults(1).list();
int currentPos=this.getPosition(clusterJobInstanceNames, currentInstanceName)+1;
int secondUnit=40;
if(heartbeats.size()>0){
Date now=new Date();
Heartbeat heartbeat=heartbeats.get(0);
Date beatDate=heartbeat.getDate();
Calendar beatCalendar=Calendar.getInstance();
beatCalendar.setTime(beatDate);
String beatInstanceName=heartbeat.getInstanceName();
if(!currentInstanceName.equals(beatInstanceName)){
int currentSecond=currentPos*secondUnit;
int beatPos=this.getPosition(clusterJobInstanceNames, beatInstanceName)+1;
if(currentPos>beatPos){
beatCalendar.add(Calendar.SECOND,currentSecond);
}else if(currentPos<beatPos){
currentSecond=(currentPos+(clusterJobInstanceNames.length-beatPos))*secondUnit;
beatCalendar.add(Calendar.SECOND,currentSecond);
}
}else{
beatCalendar.add(Calendar.SECOND,secondUnit*clusterJobInstanceNames.length);
}
if(now.compareTo(beatCalendar.getTime())<0){
//当前时间小于心跳时间+currentSecond,说明当前运行JOB的实例运行中
runScheduler=false;
}
}else{
if(currentPos>1){
//如果当前实例不处于运动集群JOB的第一位,那么就不运行JOB
runScheduler=false;
}
}
}finally{
session.close();
}
if(runScheduler){
schedulerService.resetScheduer();
}
}
示例4: loadScheduerInfo
import org.quartz.Scheduler; //导入方法依赖的package包/类
@DataProvider
public SchedulerInfo loadScheduerInfo() throws Exception{
SchedulerInfo info=new SchedulerInfo();
info.setRunJob(schedulerService.isRunJobInCurrentInstance());
Scheduler scheduler=schedulerService.getCurrentScheduler();
if(scheduler!=null){
if(scheduler.isStarted()){
info.setState(SchedulerState.started);
}else if(scheduler.isShutdown()){
info.setState(SchedulerState.shutdown);
}else if(scheduler.isInStandbyMode()){
info.setState(SchedulerState.standby);
}
info.setJobInstanceName(schedulerService.getJobInstanceName());
List<JobInfo> jobs=new ArrayList<JobInfo>();
for (String groupName : scheduler.getJobGroupNames()) {
for (JobKey jobKey : scheduler.getJobKeys(GroupMatcher.jobGroupEquals(groupName))) {
JobInfo jobInfo=new JobInfo();
JobDetail jobDetail=scheduler.getJobDetail(jobKey);
if(jobDetail instanceof SpringBeanJobExecutorDetail){
SpringBeanJobExecutorDetail springBeanDetail=(SpringBeanJobExecutorDetail)jobDetail;
jobInfo.setTargetJobInfo("SpringBean:"+springBeanDetail.getTargetJobBeanId());
jobInfo.setType(JobType.definition);
}else if(jobDetail instanceof ScanJobExecutorDetail){
jobInfo.setType(JobType.scan);
jobInfo.setTargetJobInfo(jobDetail.getJobClass().getName());
}
Trigger trigger=scheduler.getTriggersOfJob(jobKey).get(0);
jobInfo.setName(jobDetail.getKey().getName());
jobInfo.setGroup(jobDetail.getKey().getGroup());
jobInfo.setNextFireDate(trigger.getNextFireTime());
jobInfo.setPreviousFireDate(trigger.getPreviousFireTime());
if(trigger instanceof CronTriggerImpl){
CronTriggerImpl cron=(CronTriggerImpl)trigger;
jobInfo.setTriggerInfo("Cron表达式类型触发器["+cron.getCronExpression()+"]");
}else{
jobInfo.setTriggerInfo("触发器类型:"+trigger.getClass());
}
jobs.add(jobInfo);
}
info.setJobs(jobs);
}
}
return info;
}