2016-07-26 1 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