xxljob失效机制
时间: 2023-09-02 16:05:57 浏览: 66
xxl-job的失效机制主要通过JobScheduleHelper线程来实现。该线程会定时扫描xxl_job_info表中的任务,并判断任务的下一次执行时间是否小于当前时间的5秒。如果满足条件,则将任务加入到时间轮中进行触发器执行。为了避免重复调用,多个调度中心的情况下,使用mysql的悲观锁来保证任务的唯一执行。具体实现的流程如下:
1. 首先,JobScheduleHelper线程尝试获取mysql表xxl_job_lock的悲观锁。
2. 获取到悲观锁后,从xxl_job_info表中查询启动状态并且下一次执行时间小于当前时间5秒的任务列表。
3. 遍历需要执行的任务,刷新下一次执行时间,并将该任务放入时间轮中。
4. 时间轮进行遍历并调用触发器执行任务。
5. 在执行任务的过程中,使用mysql的悲观锁来避免重复调用。
6. 最后,提交事务并释放悲观锁。
这样,通过定时扫描和悲观锁的机制,xxl-job可以有效地保证任务的准确触发和避免重复执行。<span class="em">1</span><span class="em">2</span><span class="em">3</span>
#### 引用[.reference_title]
- *1* *2* *3* [xxl-job集群原理](https://blog.csdn.net/u010833154/article/details/121423295)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"]
[ .reference_list ]
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)