在java开发过程中,我们一般是在windows中开发应用程序,然后将程序发布到linux服务器上
一次开发中,我将程序发布到linux服务器上进行调试,但是发现我的数据库中某个字段的状态位经常被修改,看日志却没有任何记录,可以确认这个数据库只有一个人在用,同时代码逻辑也查看多变没有问题,而且日志当中没有任何的相关记录,这就奇怪了,这是谁在改数据库。
后来才想到程序中有定时任务,不仅在linux下面跑,windows上面也起了服务在跑定时任务,因此一定是windows上面的服务在定时修改数据库的状态,而我们只查看linux的日志,当然找不到问题。
总结:对于有定时任务的应用程序,一般来说定时任务应该只需要在一台机器上面跑,因此如果部署在多台机器上,一定要小心同时跑定时任务带来的风险。