2016-07-26 46 views
0

我試圖找到它,但沒有結果。我想讓對象具有指向何時運行的bash腳本和cron表達式的路徑。這是SpringBoot項目。我看到它是這樣的:使用類字段的cron表達式安排作業

public class TestScript { 

    private String cronExpression; 
    private String pathToFile; 

    public void execute() { 
     // either it's @Scheduled or execute another way 
    } 
} 

是否有可能做?如果可以的話請引導我。

回答

1

好吧,我設法讓我的定製服務,以動態創建工作:

@Service 
public class DynamicJob { 

    public void schedule(TestScript testScript) { 
     try { 
      JobDetail job = JobBuilder.newJob(TestScript.class) 
        .withIdentity(testScript.getName(), "default group") 
        .build(); 

      Trigger trigger = TriggerBuilder.newTrigger() 
        .withIdentity(testScript.getName().concat(" trigger"), "groupAll") 
        .withSchedule(CronScheduleBuilder.cronSchedule(testScript.getCronExpression())) 
        .build(); 

      Scheduler scheduler = new StdSchedulerFactory().getScheduler(); 
      scheduler.start(); 
      scheduler.scheduleJob(job, trigger); 

     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

} 

TestScript類實現org.quartz.Job我用quartz庫版本2.2.1