example1.properties
example2.properties
example3.properties
Я хотел бы перебрать эту папку и запланировать несколько заданий.
До сих пор мне удалось запланировать один экземпляр для одного типа данных (пример 1).
Я использую один файл свойств. application.properties, в котором у меня есть app.cron.rule=0 * * * * * с некоторыми другими свойствами, специфичными для примера 1
Код: Выделить всё
@Scheduled(cron ="${app.cron.rule}")
public void doSomething() {
doSomething("example1"); // uses properties values in example1.properties to process some data
}
Я не могу определить N cron в своем приложении, поскольку количество cron является динамическим и зависит от количества файлов свойств.
Если у вас есть другой способ добиться этого, кроме использования нескольких файлов свойств, или если у вас есть подсказка, как это сделать, я был бы рад это выслушать.
Надеюсь, это не дубликат, но я не нашел ни одного.
Обновление
Вот более подробная информация о моем коде:
У меня есть класс:
Код: Выделить всё
@Service
@PropertySource("classpath:observation.properties")
public class MyService {
@Value("${app.data.location}")
private String dataLocation;
@Value("${app.data.type}")
private String dataType;
// other attributes loaded from application.properties
public void doSomething() {
// use dataLocation and data type to process some data.
}
}
Код: Выделить всё
public class MyScheduler {
@Autowired
MyService myService;
@Scheduled(cron ="${app.cron.rule}")
public void doSomething() {
myService.doSomething();
}
}
application.properties
Код: Выделить всё
app.cron.rule=0 * * * * *
app.data.location=/location/number/1
app.data.type=type1
Код: Выделить всё
public class MyScheduler {
@Autowired
MyService myService;
for(file in folder) {
@Scheduled(cron ="${app.cron.rule}")
public void doSomething() {
myService.doSomething(); // the attributes in myService should change acording
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/771 ... ava-spring
Мобильная версия