2012-02-04 57 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