Как запланировать несколько заданий из нескольких файлов свойств в Java Spring?JAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Как запланировать несколько заданий из нескольких файлов свойств в Java Spring?

Сообщение Anonymous »

У меня есть папка с несколькими файлами свойств, каждый из которых соответствует определенному типу данных, например
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
}
Я хотел бы просмотреть файлы в папке и создать cron для каждого файла.
Я не могу определить 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
Мне хотелось бы иметь несколько файлов свойств, содержащих разные значения для app.cron.rule, app.data.location, app.data.type (type1.properties, type2.properties и т. д.) и запланировать задание для каждого файла, т.е.:

Код: Выделить всё

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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»