Для разработчиков/пользователей LMAX Disruptor http://code.google.com/p/disruptor/:Как применить функцию тайм-аута к очереди LMAX Disruptor Queue?
Мой вопрос: Может кто-нибудь предложить подход к тому, как применять функцию тайм-аут, чтобы Disruptor например используя EventHandler?
Вот один сценарий, который возник в моей работе:
- Исходящие - сообщения, отправляемые на сервер по сети
- Входящие - ACK-сообщения, полученные от сервера
- ACK Handler - знаки отпр сообщения как ACKed
- Timeout Handler - отмечает отпр сообщения, как голые (очень нужно, но где он может вписаться в дизайн Disruptor?)
Есть ли у кого-то такое же мнение? Или кто-нибудь может указать, почему это не нужно. Надеюсь, что последующие дебаты будут краткими.
спасибо.
Да, тайм-аут EventHandler, который вызывается, когда какие-либо объекты остаются слишком длинными в ringbuffer. Проблема в том, что я не вижу, как EventHandler можно реализовать и зарегистрировать в RingBuffer/Distruptor для поддержки тайм-аутов. Единственное решение, которое я могу решить, это настроить собственный EventProcessor. –
Извините за то, что не ответил soooo long. Вам придется переиздать его определенное количество раз, то есть количество попыток отправки электронной почты ... или до истечения времени t ... так что поток всегда возвращается к нему. –