Можем ли мы дождаться приложений PeopleSoft, чтобы дождаться, пока асинхронные сообщения для завершения?

StackOverflow https://stackoverflow.com//questions/22022400

Вопрос

Я пытаюсь обработать загрузку данных, где я пытаюсь опубликовать сообщения через PeopleSoft по интеграционному брокеру асинхронически в приложении. Весь смысл состоит в том, чтобы иметь возможность отправлять несколько сообщений и потреблять их в одном узле. Перед отправкой сообщений я сохраняю данные на таблице (скажем, T1) для хранения всех значений поля в файле загрузки.

Во время потребления я пытаюсь разоблачить каждое сообщение на интерфейс компонента, и исключения регистрируются на одной таблице T1. Допустим, для каждой транзакции мы помечаем поле таблицы (скажем, lessed_flag= 'y').

Мне нужен механизм, где я мог бы просто ждать всех асинхронных сообщений для завершения. Я думаю о проверке таблицы T1, если есть какие-либо строки на таблице T1, где обрабатывается_flag - «N», просто сделайте резьбу для более времени. Хотя все сообщения не обрабатываются, держите его спать и не позволяйте приложению к завершению.

Единственная выгода, которую я могу получить, мне не нужно ждать нескольких экземпляров одновременно или не нужно делать синхронный вызов. Вся идея состоит в том, чтобы использовать компонент различными транзакциями (как если бы он использовал, сказал 100 человек -> 100 транзакций).

Если эти 100 транзакций не завершены, мы будем уверены, что таблица T1 сохраняет запись о том, что происходит и выключено. Если что-то не так, он может воспользоваться исключениями, уловленными CI.

Любые комментарии по этому подходу будут оценены. Заранее спасибо!

Это было полезно?

Решение

Мы берем другой подход. Даже если мы можем подтвердить данные о тех таблицах до завершения приложений двигателя, вся идея отправить сообщения асинхронно не использовать. В этом случае использование синхронных сообщений было бы лучше и запустить процессы параллельно.

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

  1. Мы будем обновлять таблицу T1, для всех обработанных / успешных / неудачных строк, когда мы продолжаем потребляться сообщения и использовать их по мере необходимости.

  2. Мы будем держать аудитор или счетчик для всех, опубликованных и потребляемых строк. Поскольку разоблачение того же компонента к нескольким транзакциям было бы огромное влияние на производительность. Мы хотим убедиться, что он лучше выполняет, словно скажем, что 50 пользователей обновляют одни и те же таблицы за компонентными компонентами, используя одинаковую Ci (конечно, разные экземпляры). Я заполняю свои доказательства концепции и, надеюсь, это будет намного лучше, чем запустить процессы параллельно.

  3. Я надеюсь, что это может помочь любому, кто имеет дело с этими проблемами загрузки. Спасибо!

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top