Plurk 訊息取得時間分布 – 20111215

我在噗浪寫了幾隻機器人,其中有兩隻好友都超過 20 萬個,機器人有個特性很重要,就是必須要拿到好友的訊息,才會有所回應。

最近一個多月以來,機器人回應噗的狀況非常差,較前月以及去年同期掉了接近三成!

有以下幾個可能:

  1. 回應數暴跌是因為噗浪正在走下坡,使用者漸漸變少了,沒那麼多訊息,自然也就沒那麼多回應。換言之,,十一月份是噗浪的死亡交叉
  2. 回應數暴跌是因為機器人已經不好玩了,所以漸漸沒人在玩。
  3. 回應數暴跌是因為噗浪在同步使用者發表的訊息這一塊,效率真的不是很好,導致訊息同步的效率很差。

前兩點不是很確定,但其中以第三點的狀況有跡可循:

小籤籤分佈 小歌手分佈
機器人1取得訊息時間差統計 機器人2取得訊息時間差統計

上面這兩張圖,的解釋如下:

圖中數字的 0 代表透過 RealTime API 取得,其餘部分則是使用 Polling API 加上時間差參數 (Time Offset) 取得未讀訊息的數量分佈,而 30, 60, 90, 150, 240 則是我先設定好的時間差參數 (Time Offset) 。

理想的狀況是我所有訊息都可以透過 RealTime API 取得,但實際上的分佈,我只能取得六成的即時訊息,其他還是要靠 Polling API 來拿。

圖中數字 30, 60, 90, 150, 240 的意義可以粗略解讀如下:以 240 為例子,當使用者在 1:00:00 發表了一則訊息,程式要等到 1:04:00 (差了 240 秒) 才能拿到使用者發的那則訊息。

然後機器人不會使用 Polling API 拿取時間差參數 (Time Offset) 超過 240 秒的訊息,一方面是要降低 Plurk 那邊伺服器的負擔,另一方面是訊息的時效性已經沒那麼強。

基於以上的跡證,關於機器人沒有回應的問題,其實也沒什麼好方法來解決 (因為機器人根本就拿不到使用者的訊息,自然就無法回應)。

所以,還請機器人使用者多多包涵…抱歉了。

Posted in 碎碎念

Leave a Reply

Your email address will not be published.