Я бы использовал EJB 3 TimerService для этой цели.
Проблема с асинхронными компонентами заключается в том, что они не являются постоянными.
Таймеры EJB3 являются постоянными (хранилище файлов по умолчанию), и их можно настроить на использование собственного планировщика WebSphere, если вам нужно что-то особенное.
Обычно достаточно значений по умолчанию.
Проверьте это руководство: Использование службы таймера