У меня есть требование создать уникальную циклическую последовательность, которая является конкатенацией двух отдельных последовательностей.Java/SQL Создание пользовательской последовательности/создание последовательности на основе двух последовательностей
Последовательность 1 диапазон from- от 1001 до +1040 Последовательность 2 диапазон составляет от 220 до from- 240
логика для генерации последовательности первая последовательность приращения 2, сохраняя последовательность 1, как есть. После того, как последовательность 2 достигает 240, необходимо увеличивать последовательность 1.
Последовательность будет что-то, как показано ниже: -
1001-220 1001-221 1001-222 .... .... 1001-240 1002-220 1002-221 1002-222 .... .... .... .... 1040-240 1001-220
Это довольно просто, если есть только один процесс/JVM, которому требуется эта последовательность, и в этом случае я могу просто иметь две статические переменные и реализовать эту логику.
Но последовательности могут использоваться несколькими процессами, сидящими на разных JVM и, следовательно, должны быть потокобезопасными.
Следующая мысль, которую я имел, заключалась в использовании последовательностей Oracle DB для обоих. Но это может пропустить некоторые порядковые номера из-за множества параллельных вызовов, поступающих из разных систем.
Есть ли лучший способ сделать это?
Требуется ли, чтобы порядковые номера никогда не пропускались? Сохраняете ли вы эти значения в базе данных? –
Да, номера последовательностей не могут быть пропущены. У меня нет требования хранить значения в БД, а просто возвращать последовательности как часть ответа веб-службы. – HarshaKA