后台定时任务轮询调用一个方法,每秒执行一次,主要是从数据库取出几十条数据循环进行处理,处理结束整个循环大概要3秒钟,每秒轮询的话,第一次还没处理完,紧接着调用会有什么影响吗?它是怎样的一个执行流程,是会被阻塞吗?还是我需要使用文件锁,当循环执行完成再释放
后台定时任务轮询调用一个方法,每秒执行一次,主要是从数据库取出几十条数据循环进行处理,处理结束整个循环大概要3秒钟,每秒轮询的话,第一次还没处理完,紧接着调用会有什么影响吗?它是怎样的一个执行流程,是会被阻塞吗?还是我需要使用文件锁,当循环执行完成再释放
这个问题可以思考下,当多用户同时点赞该文章的时候是怎么实现的?因为操作的流程一般是取值,修改,存值。如果它们都是同时操作,不考虑误差,不做其它处理,那么大家所操作的流程都是 获取 0 ,修改 0 + 1 ,保存 1.
2 回答1.3k 阅读✓ 已解决
2 回答824 阅读✓ 已解决
1 回答905 阅读✓ 已解决
1 回答1k 阅读✓ 已解决
2 回答882 阅读
1 回答873 阅读
1 回答803 阅读
首先这个问题本质就是一个并发处理互斥资源的问题
伪代码:
当然直接利用mysql的排他锁也可以简单解决一个互斥问题,不过会带来更多其他问题