2012-09-17 37 views
2

如何觸發任何動作,當會話[]空閒特定時間觸發任何動作。Grails的:(:10分鐘例如)如果會話是空閒有時

我在做一個使用Grails的Web應用程序。如果系統閒置一段時間,我需要承擔一些特定的任務。系統空閒時是否可以觸發任何操作?

注意:我不會詢問會話超時。默認情況下,如果會話空閒30分鐘,它應該註銷。

[]:在這裏感覺系統中的會話。我的Web應用程序託管在一臺服務器上,許多用戶可以訪問該應用程序。如果一個用戶的系統閒置了一段時間,那麼我需要保持該用戶的任務。我怎樣才能做到這一點?

回答

1

根據HTTP請求 - 響應模式的性質,您無法根據用戶(非)交互觸發任何服務器端任務。

您可以使用JavaScript「監視」客戶端的用戶會話並觸發客戶端和/或服務器端的任何任務。我已使用jQuery idleTimer來檢測用戶是否處於活動狀態。

使用此插件,您可以綁定到多個事件以檢測用戶的閒置和重新激活。如果空閒事件被觸發,你可以做一個AJAX調用觸發任何服務器端的任務是這樣的:

$.idleTimer(10000); 

$(document).bind("idle.idleTimer", function(){ 
    // function you want to fire when the user goes idle (e.g. do an AJAX call) 

    $.post('${yourActionURL}', function(data) { 
     // handle response 
    }); 
}); 

希望幫助!

+0

我想捕獲系統空閒時間。但我的應用程序託管在一臺服務器上。那麼我怎麼能得到每個用戶的系統空閒時間? – Arivabi

+0

如果你可以提供更多的細節,它會更容易回答。 「我需要承擔特定用戶的任務」是什麼意思?你想實現什麼? – aiolos

+0

我正在做時間表管理項目。其中,項目經理將分配一些任務給emp。如果emp想要開始任務,那麼他們將點擊開始。如果他們想要休息,那麼他們必須承擔這項任務。如果他們完成了,他們必須點擊完成。如果系統閒置了一段時間,那麼這也意味着,這個系統沒有做任何工作。所以系統應該自動把任務保持。我想實現這一目標。請提供任何解決方案 – Arivabi

相關問題