[英]Implementing lottery system in java fetching records from mysql in real time
我受命制作一個Java彩票系統,該系統從數據庫中獲取手機號碼,然后在textview中顯示。 系統將按以下方式工作: 1
用戶單擊“開始”按鈕,系統將開始以非常快的速度隨機獲取手機號碼,大約每秒10次,然后當他們單擊“停止”按鈕時,系統停止獲取信息,當前顯示的手機號碼獲勝,我的解決方案是使用計時器,等待100 miliseconds
或者在可能的情況下實時
ScheduledExecutorService exec = Executors.newSingleThreadScheduledExecutor();
exec.scheduleAtFixedRate(new Runnable() {
@Override
public void run() {
// fetch from database
}
}, 0, 100, TimeUnit.MILLISECONDS);
}
但是我的問題是連接數據庫有時會導致開銷,如何避免這種情況? 我可以預先獲取或記錄,然后將它們存儲在arraylist中,但是如果數據庫中又有數百萬條記錄會導致內存問題,該怎么辦?
您需要一種使連接一次然后再重用的解決方案,如下所示:
// when user presses START:
make DB connection
WHILE user has not pressed stop yet DO
execute query to retrieve a number
wait 100ms
ENDWHILE
close connection
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.