Ответ 1
Вы не указываете, какое приложение вы разрабатываете с помощью Scala, поэтому я собираюсь угадать здесь и предположим, что вы делаете серверную сторону. Идя дальше с диким угадыванием, скажем, вы используете Akka... потому что вы используете его, не так ли?:)
В этом случае, я думаю, что вы ищете Akka Quartz Scheduler, официальное расширение Quartz и утилиты для планирования в стиле cron в Акка. Я сам не пробовал, но из ваших требований кажется, что Akka + этот модуль будет хорошо подходить. Учтите, что Akka уже предоставляет перехватчики для перезапуска неактивных участников, и я не думаю, что было бы трудно добавить мониторинг пакетных процессов, используя обратные вызовы жизненного цикла, встроенные в участников.
Что касается взаимодействия с обменом сообщениями JMS/AMQP, вы можете использовать модуль Akka Camel, который обеспечивает поддержку отправки и получения сообщений через много протоколов, включая JMS. Используя этот модуль, вы можете заставить пользователя-потребителя получать сообщения от какой-либо конечной точки JMS и запускать любой процесс, который вы хотите оттуда, возможно, перенаправляя или отправляя новое сообщение субъекту, ответственному за этот процесс. Если процесс запускается либо таймером стиля cron, либо входящим сообщением, вы можете повторно использовать одного и того же актера для выполнения задачи.