【问题标题】:Send SMS if push notification not delivered after some delay如果延迟一段时间后未发送推送通知,则发送 SMS
【发布时间】:2017-07-26 12:38:06
【问题描述】:

我需要一些想法如何完成这项任务。

我有一个带有推送状态的数据库,名为“pushStatus”的表,字段为“id、send、delivered”

  • 服务器在 ios 或 android 上发送推送通知,然后设置 pushStatus.id 和 pushStatus.sent = true

  • 手机接收到这个推送并发送回调到服务器关于推送已传递找到 pushStatus.id 和 pushStatus.delivered = true

没关系,但如果在 10 秒内推送 未发送,我需要发送短信 如何在 NodeJSPHP

上做到这一点

-----------------UPD------------------

我想用setTimeout(sendSMS, 10000);的nodeJS然后在func sendSMS检查pushStatus.delivered如果没有,调用API服务发送短信,但是在这种情况下高负载怎么样?

【问题讨论】:

    标签: php android ios node.js


    【解决方案1】:

    您应该有另一列包含任何已发送推送的时间戳,并有一个 celery 任务或 cron-job 在发送推送后 10 秒内触发,然后在您的任务中,您应该检查通知状态并发送未送达时发短信。

    【讨论】:

    • 感谢您的回答,是的,我考虑了一下,但将来我将有 1000-5000 每小时/小时,我需要找到最佳解决方案,我阅读了 rabbitMQ 但不知道如何在我的情况下使用
    【解决方案2】:

    您可以使用以下逻辑仅在 iOS 中实现此场景。
    添加一个 NSTimer 仅运行 10 秒。
    现在,使用此计时器实例检查您的数据库字段。

    if pushStatus.delivered == true, pushStatus.id == true {
       // don't send sms.
    } else {
       // send sms.
    }
    

    【讨论】:

    • nstimer 是一个 ios 功能
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多