遊戲伺服器定時任務大家是通過什麼方式實現的?

時間 2021-05-31 19:45:17

1樓:jack tang

可以參考libevent 和redis 的實現。libevent 那個效率高,適合加大量的定時器,但是redis 那種實現簡單,而且更適合一般的遊戲伺服器,就弄乙個定時器,然後分一下類去做遍歷

2樓:飄逸的h

明明自己寫幾個判斷就行了,搞那些沒用的,什麼庫,什麼演算法的,都畫蛇添足。邏輯迴圈的時候處理一下時間最簡單,而且把時間傳給各個模組,取一次時間,各個模組都可以用。

3樓:諾唯

我找了乙個開源的專案是使用go 開發的 https://github.com/noaway/heartbeat

很好用!

4樓:蔡鎮秋

自己寫個 Timer 程序,然後,做寫個任務列表如:job.txt,然後,一直保持 Timer 執行就好了。

這個是我見過最快最可靠的,而且是最簡單的。

其他的什麼佇列什麼任務的,不確定因數比較多,盡量不考慮。

5樓:littlewolf

遊戲伺服器由於複雜邏輯,主流程一般都是單執行緒的(當然,網路、IO等會在其他執行緒),所以時間檢測就是在主update裡,每次update的時候檢測就行,可以把時間傳給邏輯模組兒,各邏輯模組分別檢測時間,這塊兒開銷非常小

6樓:

不要搞那麼麻煩,就迴圈檢測就行了。但是推薦這麼弄:第乙個層次是,每次主迴圈都要呼叫的邏輯;在每次主迴圈都要呼叫的邏輯裡檢查每秒的時間戳,每到了一秒就呼叫每秒呼叫的邏輯;然後在每秒呼叫的邏輯裡檢查每分的時間戳,每到一分就呼叫每分呼叫的邏輯;每分往下就不需要再細分了,直接檢查各種更大間隔邏輯的時間戳就行了。

以上是大模組的,然後每個精靈物件再擼一遍自己的。

遊戲需要的定時也無非是每tick,每秒,每分,每小時,每天等只要如此層層分下來,而不是每次心跳就測試一遍所有時間戳,根本就沒多少判斷,簡潔明瞭也沒啥開銷,用profiler測過無數遍了。

網頁遊戲伺服器,小團隊是適合自己買伺服器找IDC託管,還是用雲主機?

170yun伺服器 這個要根據實際情況來看,一般前期業務量不大的話,可以先選擇雲主機,後期業務量上來了,也可以選擇伺服器託管。直接選擇雲主機會更方便快捷一點,伺服器託管有更大的自主性 跳跳熊 前面說的很好了我在補充一下後期流量多了伺服器還要考慮頻寬的公升級,不然使用者瀏覽起來就費勁。遊戲伺服器還要防...

為什麼手遊伺服器一般將登陸伺服器和遊戲伺服器分開?

lhelpme 可以參考這個分布式的遊戲伺服器 liyonghelpme Moba伺服器 碼雲 Gitee.com 遊戲邏輯伺服器,也就是世界伺服器,是可以隨時增加和擴容的而閘道器,登陸伺服器是單點伺服器,主要用來查詢世界伺服器狀態,返回給客戶端,供客戶端去連線的 閘道器甚至可以是乙個HTTP伺服器...

為什麼騰訊要弄個加速器而不是把遊戲伺服器弄的好一些快一些?

1 加速器速度和伺服器速度沒有任何聯絡。網路加速器只是幫你開通乙個更加專有的節點通道,避免地域導致節點通訊lag延遲太長。和伺服器的計算能力半丁點邊都不沾。2 加速器中轉節點和遊戲邏輯伺服器是不同概念,乙個只是作為橋梁讓你把通訊資料傳過去,另乙個是負責計算各個資料並反饋,兩個需要的伺服器硬體需求天壤...