如何根据数据库存储的时间及时的执行相关的方法?

发布于 2022-09-07 03:59:51 字数 551 浏览 27 评论 0

现在有一个任务执行表

id任务类型订单号执行时间执行状态执行的类名
1order123时间戳是否执行状态执行类

这种怎么去实现在指定的时间去执行相关的任务呀?

目前想到的做法是,定时任务定时的扫描表(总会有差值),然后判断时间差。将时间差在20分钟内的(这个值只是乱定义的)任务通过一个消息队列(目前使用的是amq),延迟发送给消费者执行

考虑:如果全用延迟消息队列,目前还不知道怎么持久化消息。只有数据库去存这些任务,但怎么去将这些数据库存的任务,及时的发送给消费者消费,还没有解决办法

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

往日情怀 2022-09-14 03:59:51

一种可行的方案是使用zookeeper。
当你插入一条记录时,在zookeeper中创建一个节点,并设置超时时间(自己算好执行时间跟当前时间的时间差),然后对该节点设置watcher。当超时时间一过,watcher中会收到通知,此时执行你想要执行的方法就行

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文