java单线程实现多个时间不同的定时任务

现在要做一个灵活添加的定时任务工具,例如检查 当新增一个物品,我就设定这个单线程的检查器去检查他,达到灵活可配置,且要设定它的检查时间,各位大牛帮我 springboot

springboot有quartz的依赖,添加依赖后可直接使用quartz定时器,
至于quartz在springboot中的使用,如何配置和设定定时任务可以参考:https://blog.csdn.net/qq_37804737/article/details/84335880

可以建立一个最小堆存储任务,然后单线程取队列里面的任务,(可以基于延迟队列DelayQueue,DelayQueue保证元素到期才能取出),轮询取出所有到期任务执行完毕之后计算距离下一个任务执行还需要多久,让线程休眠指定时间然后唤醒继续取任务,Redis的定时任务执行就是类似的思路。 不过这只是一个思路,具体的还需要根据你的引用场景再做设计,比如计算下一次唤醒时间,设定休眠阈值之类的。