跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 基于 Java 通知类的功能模块设计
未分類
10 2 月 2021

基于 Java 通知类的功能模块设计

基于 Java 通知类的功能模块设计

資深大佬 : samin 2

背景

根据设置会给用户生成一系列任务,有任务开始时间和任务结束时间,在这段时间内执行完成,才算是正常完成任务,否则逾期。

需求

后台管理界面设置在任务结束时间前 N 分钟向用户发起提醒推送。

实际用例

前提

  1. A 用户被下达了一个 9:00 ~ 10:00 的任务
  2. 后台设置了 10 分钟的提醒功能

结果

A 用户在 9:50 会收到一条任务即将结束的通知

痛点

寻求目前业界常用的做法是啥 ? 没有做过这类功能的开发。

我目前的解决思路

方案一

服务器端做轮询操作,每隔一段时间去扫描所有的任务,符合条件的通过极光推送至客户端,通过 Wobsocket 通知 Browser 后台管理端。

方案二

服务端做定时任务,每个任务生成的时候,自动生成一个距离结束前 N 分钟的定时任务,到时间了自动触发,通过极光推送至客户端,通过 Wobsocket 通知 Browser 后台管理端。

方案三(只能适配客户端)

服务端向手机 APP 端下发提醒参数,APP 端拉取用户所有进行中的任务,APP 端监听任务进行任务提醒功能。

总结

个人比较偏向方案三,只做客户端的提醒功能,后台管理其实不需要知道这个提醒,只需要关注结果,可以消耗更少的服务器资源实现这个需求。

大佬有話說 (6)

  • 資深大佬 : choice4

    直接延时队列有什么问题吗

  • 資深大佬 : icql

    这不是延时消息 /队列干的事儿嘛,生成任务时发个延时消息就好了

  • 資深大佬 : luozic

    actor 模型,非常合适这种消息

  • 資深大佬 : mmdsun

    “
    A 用户被下达了一个 9:00 ~ 10:00 的任务
    后台设置了 10 分钟的提醒功能
    结果

    A 用户在 9:50 会收到一条任务即将结束的通知”

    你这个就是指定时间触发一个通知操作,用任务调度框架也能实现。

  • 資深大佬 : wangyanrui

    小项目直接用 redis 的 zset,大点的上个延时队列,客户端轮训即可,尽量不要客户端实现全部逻辑,否则后期想改动逻辑的话比较困难

  • 主 資深大佬 : samin

    综合想了一下,直接采用 CRON 工程做掉

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具