[問題] (已解決)長時間的 notification 排程方案

作者: Neisseria (Neisseria)   2017-03-24 10:02:55
嗨 各位板友好
小弟有一個和排程相關的使用者情境,想詢問大家
我有一個 survey-like app (跨平台框架做的,有 Android 和 iOS)
現在想加一個 notification 的新功能
假設使用者在做完某個 survey 後
此 app 會偵測此事件 在兩個星期後通知使用者再做一次 survey
當然 使用者可以自由選擇要不要開啟通知
要不然使用者應該會怒刪此 app
目前傾向於用 push notification 的機制 在 server 上做
比較容易處理不同平台間的差異
想到的方案有幾個,但都有一些困難點:
1. cron on Linux:
job 存在遠端主機上,即使 service failure 後仍會儲存資訊
但對於多使用者似乎處理不佳
2. delayed_jobs (Ruby gem):
job 存在 persistent 資料庫中,若 service failure 後仍可回復
但不知道能不能處理重覆性的工作 目前感覺最有希望的方案
3. Resque (Ruby gem):
job 存在 Redis 資料庫中,擔心 service failure 後 job 會消失
不確定能否處理重覆性的工作 第二備選方案
當然 其實已經有一些現有的方案
但沒有直接選用這些方案 有一些考量
有些方案會收集使用者資訊
而我不希望我的 app 使用者的一些資訊流到第三方手上
有些方案則是在過一定數量的使用者後收費過高
當然 自己重造輪子很笨 Orz
同時也在找一些現有的方案
如果有不錯的方案 不需要寫很多程式碼 也歡迎提供
[Update]
後來發現我的需求用 local notification 就可以解決 冏rz
這也是好事啦 不用維護 server 會比較輕鬆
這幾天查一查對 notification 的機制也多了解一些
感謝各位大大的回應
作者: johnlinvc (阿翔)   2017-03-24 12:30:00
AcitveJob + Sidekiq
作者: tonytonyjan (南洋大兜蟲)   2017-03-24 18:26:00
二和三應該算同一個解法吧
作者: david50407 (Davy)   2017-03-24 20:42:00
2 3 應該是一樣的解 掛一個daemon一直去問db有沒有事情要做
作者: rayway30419 (RayWay)   2017-03-25 13:58:00
Sidekick+1 有retry機制,redis可以persistent

Links booklink

Contact Us: admin [ a t ] ucptt.com