相关疑难解决方法(0)

Java库类来处理"回调"的预定执行?

我的程序有一个组件 - 称为调度程序 - 它允许其他组件及时注册他们想要回调的时间点.这应该像Unix cron服务一样工作,即你告诉调度程序"在每整个小时过去十分钟通知我".

我意识到Java中没有真正的回调.

这是我的方法,是否有一个已经完成这些工作的库?随意提出改进建议.

注册调度程序通行证:

  • 包含小时,分钟,秒,年月,dom,dow的时间规范,其中每个项目可能未指定,表示"每小时/每分钟执行一次等".(就像crontabs一样)
  • 包含数据的对象,它将告诉调用对象在调度程序通知时要执行的操作.调度程序不处理此数据,只是存储它并在收到通知后将其传回.
  • 对调用对象的引用

在启动时或在新的注册请求之后,调度程序以当前系统时间的Calendar对象开始,并检查数据库中是否存在与此时间点匹配的任何条目.如果存在,则执行它们并重新开始该过程.如果没有,则Calendar对象中的时间增加一秒,并重新检查entreis.重复这一过程,直到有一个或多个匹配的条目.(离散事件模拟)

然后,调度程序将记住每秒的时间戳,睡眠和唤醒,以检查它是否已存在.如果它恰好醒来并且时间已经过去,它将重新开始,同样如果时间到了且作业已经执行.


编辑:谢谢你指点我Quartz.但是,我正在寻找更小的东西.

java cron design-patterns scheduling scheduled-tasks

7
推荐指数
3
解决办法
5523
查看次数