У нас есть приложение, которое выполняет много операций импорта и экспорта — в основном между файлами CSV и таблицами базы данных.
Некоторые импорты и экспорты конфликтуют (вы не можете выполнять их одновременно) по разным причинам (например, «устаревший код»).
Мы искали javax.batch
. Концептуально очень подходит. Но чего нам действительно не удалось найти, так это возможности как-то управлять «исключительностью» определенных заданий, которые мы хотим запустить.
Может ли кто-нибудь указать на это? Как бы мы реализовали эксклюзивные пакетные задания с помощью javax.batch
? Или мы должны реализовать свой собственный JobOperator
для этого?
Обновить
Под «исключительностью» я подразумеваю способность определять, что определенные задания не могут выполняться параллельно. В самом тривиальном случае это будет означать «выполнять только одно задание за раз». В более сложных случаях более сложная логика, такая как «задание типа A не может выполняться с другими заданиями типа A или B, но с C все в порядке». "Тип задания", например, jobXmlName
здесь (независимо от параметров задания).