如何根据数据库存储的时间及时的执行相关的方法?
现在有一个任务执行表
id | 任务类型 | 订单号 | 执行时间 | 执行状态 | 执行的类名 |
---|---|---|---|---|---|
1 | order | 123 | 时间戳 | 是否执行状态 | 执行类 |
这种怎么去实现在指定的时间去执行相关的任务呀?
目前想到的做法是,定时任务定时的扫描表(总会有差值),然后判断时间差。将时间差在20分钟内的(这个值只是乱定义的)任务通过一个消息队列(目前使用的是amq),延迟发送给消费者执行
考虑:如果全用延迟消息队列,目前还不知道怎么持久化消息。只有数据库去存这些任务,但怎么去将这些数据库存的任务,及时的发送给消费者消费,还没有解决办法
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
一种可行的方案是使用zookeeper。
当你插入一条记录时,在zookeeper中创建一个节点,并设置超时时间(自己算好执行时间跟当前时间的时间差),然后对该节点设置watcher。当超时时间一过,watcher中会收到通知,此时执行你想要执行的方法就行