Отложить выполнение MDB до определенной даты / времени
У меня есть система JMS, управляемая Java EE 5 MDB, работающая на WebLogic 10.3.5, для доставки объявлений по электронной почте /IM/SMS. У меня есть требование указать окно даты / времени, в которое должны быть доставлены объявления.
Насколько я могу судить, нет никакой возможности доставить / выполнить сообщение JMS в определенную дату / время.
Мой список объявлений находится в таблице БД, поэтому в настоящее время у меня есть EJB 3.0 Timer Bean, который опрашивает таблицу каждые 2 минуты и отправляет сообщения в очередь JMS для новых объявлений в этом окне.
Это работает, но мне не нравится, что опрос таблицы БД - это единственная ключевая точка в системе, которая не будет масштабироваться в соответствии со спросом, как и часть JMS. У меня есть разделение на столбце состояния таблицы, но даже тогда, когда между двумя датами выполняется BETWEEN, оно не будет масштабироваться по мере роста данных.
Могут ли люди предложить масштабируемое решение, которое позволило бы мне отказаться от опроса таблицы и просто создавать сообщения JMS при создании объявления, которые будут откладывать их выполнение до указанной даты / времени? Крайне важно, что отложенное выполнение должно быть постоянным, выживающий сервер перезапускается и автоматически продолжает "ждать" выполнения при перезапуске сервера.