老师,您好。
我想请教您个问题,我在项目里设置了一个10个线程的线程池,然后做定时任务。
任务内容:查询数据库某张表状态值为0的记录数,将状态值改为1。
我现在的做法是:启动线程池,每5分钟执行一次任务,但是如果线程1一下执行5w条任务,在这5分钟只执行了2w条,还有3w条的数据没有处理完,但是这个时候线程2已经进来了,由于线程1还有3万条的记录没有更新状态值,线程2查询数据库的时候就能查询到这三万条数据,并做出和线程1相同的处理。
虽然对数据库的记录处理不会改变,但是这里多了3w次多余操作,降低了性能,也对数据库造成额外的压力。想问下有没有啥优秀的解决办法。
望回复,谢谢!!!