当前位置: 首页 > 知识库问答 >
问题:

java - 待办提醒的实现思路?

訾朗
2023-12-26

目前有很多待办提醒的软件,有的软件支持指定xx点xx分钟进行待办提醒,好奇这个待办提醒的实现思路。

1.设置定时任务,但是需要支持到分钟维度设置提醒,那每一分钟都得一个定时任务,不太现实
2.消息队列,把待办弄成延迟消息,到点了就消费消息进行提醒

暂时只能想到这两个,不知道有没有更合适的实现思路呢

共有1个答案

林俊英
2023-12-26

除了您提到的两种方法外,还有以下几种实现待办提醒的思路:

  1. 使用时间轮(Timer Wheel):时间轮是一种数据结构,用于高效地处理时间相关的任务。它维护一个旋转的定时器列表,每个定时器都有一个超时时间。当系统时间达到某个定时器的超时时间时,就会触发相应的任务。这种方法比简单地使用一个定时器每分钟检查一次更高效。
  2. 基于回调函数的方法:在某些编程语言中,可以使用回调函数来设置超时。例如,在JavaScript中,可以使用setTimeout函数来设置一个在特定时间执行的函数。这种方法的好处是它能够在特定的时间触发事件,而不需要使用大量的定时器或轮询。
  3. 使用分布式系统:对于大型应用程序,可能需要使用分布式系统来处理大量的提醒任务。在这种情况下,可以使用分布式消息队列或其他分布式处理系统来处理提醒任务。
  4. 使用第三方服务:有些云服务提供商提供了事件驱动的处理能力,可以用来实现待办提醒。这些服务通常基于消息队列或事件驱动的处理引擎。

以上是实现待办提醒的一些常见方法,具体实现方式可能会根据应用程序的需求和使用的技术栈而有所不同。

 类似资料:
  • 流程 获取提醒列表 请求获取设备上的提醒列表: Swift: RokidMobileSDK.skill?.remind.getList(deviceId: String, completion: @escaping (_ error: RKError?, _ reminds: [SDKRemind]?) -> Void) Objc: [Rok

  • 提醒 Remind 流程 提醒列表 请求获取设备上的提醒列表: Java: RokidMobileSDK.skill.remind().getList(deviceId, new GetRemindListCallback { @override public void onSucceed(List<SDKRemind> remindList) { // ...

  • 本文向大家介绍Android实现每天定时提醒功能,包括了Android实现每天定时提醒功能的使用技巧和注意事项,需要的朋友参考一下 这个是设置定时提醒的功能,即设置几点几分后提醒,用的是给系统设置个时间点,当系统时间到达设置的时间点的时候就会给我们发送一个广播,然后达到时间提醒功能 网上找了很多,遇到了很多坑,经过摸索出来的,比如下面设置重复时间的第二个参数,网上有很多说是执行提醒延时多少毫秒执行

  • 本文向大家介绍Android后台定时提醒功能实现,包括了Android后台定时提醒功能实现的使用技巧和注意事项,需要的朋友参考一下 前提:考虑到自己每次在敲代码或者打游戏的时候总是会不注意时间,一不留神就对着电脑连续3个小时以上,对眼睛的伤害还是挺大的,重度近视了可是会遗传给将来的孩子的呀,可能老婆都跟别人跑了。 于是,为了保护眼睛,便做了个如下的应用: 打开后效果: 时间到之后有后台提醒: 好了

  • 本文向大家介绍Java等待唤醒机制原理实例解析,包括了Java等待唤醒机制原理实例解析的使用技巧和注意事项,需要的朋友参考一下 这篇文章主要介绍了Java等待唤醒机制原理实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 线程的状态 首先了解一下什么是线程的状态,线程状态就是当线程被创建(new),并且启动(start)后,它不是一启动就进入

  • 本文向大家介绍React+Antd+Redux实现待办事件的方法,包括了React+Antd+Redux实现待办事件的方法的使用技巧和注意事项,需要的朋友参考一下 之前也是写过一篇关于Redux的文章,来简单理解一下Redux,以及该如何使用。今天我就来分享一个也是入门级别的,React+Redux+antd来实现简单的待办事件。同时也讲讲自己对Redux的理解。先来看一张图吧: 我们简单的比喻来