Hy,Java: используйте Disruptor или Not. ,
В настоящее время я разрабатываю программу, которая принимает 2 значения из очереди amq и выполняет серию математических вычислений на них. Тема была создана на сервере amq, к которому моя программа подписывается и получает сообщения через обратные вызовы (слушатели).
Теперь, когда приходит сообщение, два значения извлекаются из объекта SynchronizedDescriptiveStatistics и добавляются в него. После каждого добавления в список значений вся последовательность вычислений выполняется снова и снова (это фактически является частью требования).
Проблема, с которой я столкнулся сейчас, заключается в том, что, поскольку я использую слушателей, иногда в середине вычислений получают одно или несколько сообщений. Хотя SynchronizedDescriptiveStatistics позаботится обо всех связанных с потоком проблемах, но сама добавляет все значения ожидания в свой список номеров сразу, когда она выходит из замка или что-то в этом роде. В то время как моя проблема заключалась в том, чтобы добавить одно значение, тогда выполните вычисления на нем, а затем второе значение и снова и снова.
Решение, с которым я столкнулся, состоит в том, чтобы использовать очереди заданий в моей программе (а не в очереди на очереди). Таким образом, всякий раз, когда вычисления закончены, программа будет искать дополнительные задания в очереди и соответственно.
Поскольку я также ищу эффективность и скорость, я думал, что структура Disruptor может быть хорошей для этой проблемы, и она оптимизирована для ситуаций с резьбой. Но я не уверен, что это стоит проблемы с внедрением Disruptor в мое приложение, потому что обычной стандартной очереди может быть достаточно для того, что я пытаюсь сделать.
Позвольте мне также сказать вам, что данные, по которым необходимо выполнить вычисления, много, и он будет продолжать действовать, и все вычисления должны будут выполняться снова за каждое добавление одного значения в непрерывная мода. Поэтому, учитывая эффективность и огромный объем данных, как вы думаете, будет полезно в долгосрочной перспективе.
Ждет ответа. , ,
С уважением.