看板 Ruby 關於我們 聯絡資訊
嗨 各位板友好 小弟有一個和排程相關的使用者情境,想詢問大家 我有一個 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 的機制也多了解一些 感謝各位大大的回應 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 175.182.129.209 ※ 文章網址: https://www.ptt.cc/bbs/Ruby/M.1490320977.A.859.html ※ 編輯: Neisseria (175.182.129.209), 03/24/2017 10:04:35
johnlinvc: AcitveJob + Sidekiq 03/24 12:30
這看起來還不錯 換 backend 不用重寫程式碼 或許這是一個學 Rails 的好時機 (茶) ※ 編輯: Neisseria (59.115.83.75), 03/24/2017 15:10:18
tonytonyjan: 二和三應該算同一個解法吧 03/24 18:26
david50407: 2 3 應該是一樣的解 掛一個daemon一直去問db有沒有 03/24 20:42
david50407: 事情要做 03/24 20:42
因為一種是用 relational database 一種是用 in-memory database 所以才會列成兩種不同情形 的確在運作方式上有許多相似的點 ※ 編輯: Neisseria (59.115.83.75), 03/25/2017 11:41:07
rayway30419: Sidekick+1 有retry機制,redis可以persistent 03/25 13:58
感謝回應 ※ 編輯: Neisseria (175.182.167.118), 03/25/2017 19:25:10 ※ 編輯: Neisseria (175.182.167.118), 03/25/2017 19:27:45