2012-02-04 58 views
2

在我的playframework应用程序中(我很新玩),我希望能够处理从将要发布到AMQP交换的领域模型中产生的事件。我认为这可能是一个多线程后台事件处理程序,它处理事件并处理与消息代理的连接。我曾看过乔布斯类,但看不到指定任何类型的线程池的方法。有没有人有什么建议?Playframework with thread-pool for background job

最佳,

乔恩

回答

5

线程池是由播放管理,而不是应用程序。你需要做的仅仅是创建一个作业类,并安排它运行:

@On("cron.handleAMQP") 
public class MyAMQPHandler extends play.jobs.Job{ 
    public void doJob() { 
     // your logic to handle AMQP message comes here 
    } 
} 

其中“cron.handleAMQP”可能是你application.conf一个项目:

cron.handleAMQP=0 0 12 * * ? 
+1

从来没有意识到你可以从configh中取出cron设置:** cron。**很棒的提示,tx – emt14 2012-02-04 10:56:31

+0

@green谢谢你。我现在已经在application.conf中看到了play.jobs.pool属性。我现在正在执行新的EventHandler(Event).now()以立即获取其中一个线程来处理事件。 – jdh 2012-02-04 22:30:44

+0

@jdh,是的,你可以做到这一点。我建议保留该游戏的池设置的默认配置。默认情况下,它将是prod模式下的cpu-cores + 1的数量,而在dev模式下则为1 – 2012-02-05 00:07:33