Запускать приложение Springboot каждую минуту и ​​синхронизировать каждый контроллер - PullRequest
1 голос
/ 10 апреля 2020

Я разработал приложение весенней загрузки с 4 контроллерами, и мне нужно запустить первый после завершения второго контроллера, запущенного для выполнения какой-то работы, и, наконец, четвертого, я делаю @Scheduled (fixedRate = 30000) для каждый контроллер, но с этим решением у меня нет синхронизации между 4 контроллерами, мне нужно помочь мне с решением для запуска его с синхронизатором или другим решением для автоматического запуска всех контроллеров вместе с приоритетом. и я приложил код архитектуры

@CrossOrigin("*")
@RestController

public class collector{
@Autowired
    DataSource datasource;
@Scheduled(fixedRate = 40000)
    public  void collector( )  
    {
// the methodes 
}
}
@CrossOrigin("*")
@RestController

public class Loader {
@Autowired
    DataSource datasource;
@Scheduled(fixedRate = 40000)
    public  void loador( )  
    {
// the methodes 
}
}
@CrossOrigin("*")
@RestController

public class export{
@Autowired
    DataSource datasource;
@Scheduled(fixedRate = 40000)
    public  void export( )  
    {
// the methodes 
}
}
@CrossOrigin("*")
@RestController

public class send{
@Autowired
    DataSource datasource;
@Scheduled(fixedRate = 40000)
    public  void send( )  
    {
// the methodes 
}
}

1 Ответ

1 голос
/ 10 апреля 2020

Это не так, как работают планировщики в Spring. Поскольку вы хотите выполнять каждый метод синхронно сразу после завершения предыдущего, запланируйте только тот, который запускает цепочку методов, и не стесняйтесь вызывать их внутри запланированного метода.

@Scheduled(fixedRate = 40000)
public  void collector() {
    // the methods             // body of the 1st one
    this.loader.loador();      // 2nd one
    this.export.export();      // 3rd one
    this.send.send();          // 4th one
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...