作者Neisseria (Neisseria)
看板Ruby
标题[问题] (已解决)长时间的 notification 排程方案
时间Fri Mar 24 10:02:55 2017
嗨 各位板友好
小弟有一个和排程相关的使用者情境,想询问大家
我有一个 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://webptt.com/cn.aspx?n=bbs/Ruby/M.1490320977.A.859.html
※ 编辑: Neisseria (175.182.129.209), 03/24/2017 10:04:35
1F:推 johnlinvc: AcitveJob + Sidekiq 03/24 12:30
这看起来还不错 换 backend 不用重写程式码
或许这是一个学 Rails 的好时机 (茶)
※ 编辑: Neisseria (59.115.83.75), 03/24/2017 15:10:18
2F:→ tonytonyjan: 二和三应该算同一个解法吧 03/24 18:26
3F:→ david50407: 2 3 应该是一样的解 挂一个daemon一直去问db有没有 03/24 20:42
4F:→ david50407: 事情要做 03/24 20:42
因为一种是用 relational database 一种是用 in-memory database
所以才会列成两种不同情形
的确在运作方式上有许多相似的点
※ 编辑: Neisseria (59.115.83.75), 03/25/2017 11:41:07
5F:推 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