[英]Execute java code at specific time
我正在開發一個足球經理代碼,該代碼處理人們之間需要人們組建球隊的朋友之間的比賽,並且在真正的比賽開始時誰的球員表現更好就贏得了比賽。
顯然,一旦游戲開始,玩家就無法再更換團隊。 在數據庫中,每場比賽都有一個“比賽已打開”屬性,該屬性確定玩家是否仍然可以更改其球隊。 一旦設置了值,則錯誤的玩家將無法再編輯其團隊。
所以基本上我有一個日期時間,當該日期發生時,數據庫上的值必須設置為false。
我想我會向您解釋許多替代方法:
最后一個是我更願意開發的解決方案,我知道有一些庫可以用於調度,但是我真的不知道這樣的事情是否可行以及您將如何開發這些東西。
任何提示將不勝感激。
也許Quartz Framework對您來說可能很有趣。 它具有一個Job界面,可以像Cron任務一樣進行調度。
這是我們使用的示例:
@Configuration
@EnableScheduling
public class SchedulerConfiguration {
@Scheduled(cron = "15 * * * * ") //every 15 minutes
public void scheduledTask() {
doSomethingInYourDatabase();
}
}
我會建議是使用spring調度程序(如果您使用spring)還是簡單的Java executor服務來運行一個方法,比如說在上一次執行后延遲了5分鍾。 在這里看看http://tutorials.jenkov.com/java-util-concurrent/executorservice.html
實際上,您只需要運行一個簡單的更新查詢,例如
update match set match_open = false where start_time = (Sysdate-X);
可能是您正在使用Spring。 您可以添加Service類(@Service)並使用@Scheduled注釋方法,該方法將幫助您按定義的時間間隔執行任務。 檢查詳情彈簧排程
@Scheduled(cron="*/5 * * * * MON-FRI")
public void doSomething() {
//something that should execute on weekdays only
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.