2011-03-29 59 views
1

嘿,我有這個web應用程序設置與春季和postgres。假設我的應用程序允許用戶通過指定時間進行預定。如果他在指定時間的半小時內沒有出現,我想取消此預訂。因此,假設我正在存儲預訂的表中包含一個列,其中包含指定預留時間的值和一個表示用戶是否已到達的布爾標誌。如何在每個特定的時間間隔調用彈簧控制器?

我可以想出兩種方法來處理這種情況。一種方法是創建一個彈簧控制器,它可以檢查預留表中的值,並查看當前時間和指定時間之間的差異是否大於半小時,然後是否取消預留。另一種方法是創建一些可以實現相同功能的postgres函數。

我希望有人能幫助我。我如何在15分鐘的每個時間間隔內重複呼叫上述彈簧控制器?或者,如果編寫一個減少應用程序工作負載的postgres函數,我該怎麼做?

任何幫助表示讚賞。提前致謝。

問候, SerotoninChase

+1

你有你的服務器上獲得的cron(或同等學歷)? – 2011-03-29 03:02:32

+0

這是我第一次聽到叫做cron的東西。我只是意識到我遠遠落後。 – SerotoninChase 2011-03-29 03:16:42

+1

[cron](http://clickmojo.com/code/cron-tutorial.html)是定期運行任務的標準unix程序。每個人都在某個時間點落後,不用擔心,只是繼續學習:) – 2011-03-29 03:31:58

回答

7

你可以註釋要與@Scheduled(fixedRate=900000)調用的方法,這是一個春天的註釋調用該方法每隔15分鐘。

查看documentation

+0

該死的我從來沒有嘗試過使用註釋。好吧,讓我看看,然後嘗試你的解決方案。儘管謝謝你的回答。 – SerotoninChase 2011-03-29 03:13:36

+0

好吧,我經歷了文檔。我現在有一個疑問。假設我使用了上面提到的註釋。我的理解是,該方法將每十五分鐘被調用一次。但是這種方法在彈簧控制器內部。那麼我只需調用一次該控制器就足夠了,並且方法每隔15分鐘就會反覆運行一次?如果再次調用控制器會導致問題嗎? – SerotoninChase 2011-03-29 03:24:14

+1

它從程序啓動開始每15分鐘運行一次。因此,只需編寫一個方法來檢查預訂表中的所有條目並取消適當的條目。 – 2011-03-29 03:30:30

1

只是請務必與@Scheduled註釋的方法必須以不@RequestMapping以及註釋的方法:

注意,被調度的方法必須具有空返回和 ,不要指望任何參數。

而你需要@EnableScheduling在配置類