Итак, у меня есть приложение для воспроизведения RESTful, которое взаимодействует (или скоро будет взаимодействовать) с несколькими другими микро-успокаивающими услугами.Как я могу запустить прослушиватель Runnable RabbitMQ, когда начнется приложение scala для запуска фреймворка?
Однако мне нужно запустить свой класс Runnable RabbitMQ вскоре после запуска игры, чтобы я мог вызвать некоторых аккских актеров, чтобы делать что-то.
Пока у меня есть приложение, отвечающее на «GET» маршруты// статус, и все хорошо, но я продолжаю привязываться к «Запланированным заданиям» как способ выполнить фоновое задание в Play. Это правильный способ сделать это?
system.scheduler().scheduleOnce()
??
Как предложено здесь: Running a continuous background task in Play 2.4.2 server
Edit: Попытка, что предложил Lief Эриксон, но получаю сообщение об ошибке:
//@Singleton Get the error below when I uncomment this <<-----
class Test extends Runnable {
val logger: Logger = LoggerFactory.getLogger(this.getClass.getName)
def run() = {
while(true) {
logger.info("I'm here #################")
Thread.sleep(10000)
}
}
}
class Bindings extends AbstractModule {
val logger: Logger = LoggerFactory.getLogger(this.getClass.getName)
override def configure() = {
logger.info("Configuring application ....")
bind(classOf[Test]).asEagerSingleton()
}
}
Ошибка:
[error] C:\PROJECTS\active\voldemort\app\controllers\Application.scala:29: trait Singleton is abstract; cannot be instantiated
[error] @Singleton
[error]^
Но когда я закомментируйте singleton decorator, я получаю сообщение журнала "Configuring application ..."
просто отлично, но n ВЗ I'm here #########
лаглинь
Другая альтернатива: следует ли распространять GlobalSettings и делать это именно так? – dlite922