基于 Java 通知类的功能模块设计
資深大佬 : samin 2
背景
根据设置会给用户生成一系列任务,有任务开始时间和任务结束时间,在这段时间内执行完成,才算是正常完成任务,否则逾期。
需求
后台管理界面设置在任务结束时间前 N 分钟向用户发起提醒推送。
实际用例
前提
- A 用户被下达了一个 9:00 ~ 10:00 的任务
- 后台设置了 10 分钟的提醒功能
结果
A 用户在 9:50 会收到一条任务即将结束的通知
痛点
寻求目前业界常用的做法是啥 ? 没有做过这类功能的开发。
我目前的解决思路
方案一
服务器端做轮询操作,每隔一段时间去扫描所有的任务,符合条件的通过极光推送至客户端,通过 Wobsocket 通知 Browser 后台管理端。
方案二
服务端做定时任务,每个任务生成的时候,自动生成一个距离结束前 N 分钟的定时任务,到时间了自动触发,通过极光推送至客户端,通过 Wobsocket 通知 Browser 后台管理端。
方案三(只能适配客户端)
服务端向手机 APP 端下发提醒参数,APP 端拉取用户所有进行中的任务,APP 端监听任务进行任务提醒功能。
总结
个人比较偏向方案三,只做客户端的提醒功能,后台管理其实不需要知道这个提醒,只需要关注结果,可以消耗更少的服务器资源实现这个需求。
大佬有話說 (6)