0
我需要爲某些頁面創建一個計數器。 所以我創建了一個名爲反域名:Grails頁面計數器
class Counter {
java.sql.Date date;
Member member;
int count;
int submit;
//setter and getter...
}
計數是這個頁面打開多少次,並提交是多少時間的形式提交(一種接觸形式)。
我創建了一個名爲服務CounterService:
class CounterService {
List counters;
def load() {
counters = Counter.findAllByDate(new java.sql.Date(System.currentTimeMillis()));
}
def increaseCount(Member member) {
counters.each {
if(it.member.id = member.id) it.setCount(it.count + 1);
}
}
//the rest of the code...
}
我要拯救每小時使用Quartz工作櫃檯數據庫。
您認爲這個計數器變量是多線程安全的嗎?因爲CounterService將在許多Controller中被調用。 我需要在服務器啓動之前調用加載,我不知道在哪裏調用它。 有什麼建議我應該在哪裏調用load()? 或者,也許,頁面計數器的更好的解決方案?
java.util.Date包含時間java.sql.Date沒有。 謝謝,我會根據你的建議使用ConcurrentHashMap。 但是,我應該在哪裏調用load()? –
對不起,這應該是一個List不是地圖。我已將問題編輯到List。 –
例如使用'java.util.concurrent.ConcurrentSkipListSet'爲例 – injecteer