且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

server - java web定时任务

更新时间:2023-09-19 14:40:46

个人觉得所有的软件定时都是通过轮寻来完成的,而专门开一个线程来执行这样的任务比较消耗资源,感觉下面的方案可能性能会好一些。

0.首先,我们需要一个每隔5分钟发送一个广播的定时广播
1.当用户注册时,我们注册一个监听者去监听定时广播
2.如果用户点击邮箱中的激活地址,则将之前注册的监听者关闭
3.如果监听者第二次收到广播后,则执行任务,并取消监听

之所以要在第二次收到广播的时候执行任务,是为了保证定时在5~10分钟后能执行任务。当然这样做不能保证准确的定时时间,如果需要提高定时精度的话则可以每分钟发一次广播,甚至每秒钟发一次广播,但是该场景应该不太需要。

定时广播的实现的话,可以使用quartz等工具,甚至可以用消息队列的方式来独立这一块业务。

希望可以有所帮助,如果有不合适和有错误的地方也请尽管拍砖