update document

2.1.2
xuxueli 5 years ago
parent f55b9db270
commit 787ca40319

@ -1,5 +1,5 @@
<p align="center"> <p align="center">
<img src="https://www.xuxueli.com/xxl-job/data/images/xxl-logo.jpg" width="150"> <img src="https://www.xuxueli.com/doc/static/xxl-job/images/xxl-logo.jpg" width="150">
<h3 align="center">XXL-JOB</h3> <h3 align="center">XXL-JOB</h3>
<p align="center"> <p align="center">
XXL-JOB, a lightweight distributed task scheduling framework. XXL-JOB, a lightweight distributed task scheduling framework.

@ -277,7 +277,7 @@ The concrete contet describe as follows:
If you has finished step 1,then you can compile the project in maven and deploy the war package to tomcat. If you has finished step 1,then you can compile the project in maven and deploy the war package to tomcat.
the url to visit is :http://localhost:8080/xxl-job-admin (this address will be used by executor and use it as callback url),the index page after login in is as follow the url to visit is :http://localhost:8080/xxl-job-admin (this address will be used by executor and use it as callback url),the index page after login in is as follow
![index page after login in](https://www.xuxueli.com/xxl-job/data/images/img_6yC0.png "index page after login in") ![index page after login in](https://www.xuxueli.com/doc/static/xxl-job/images/img_6yC0.png "index page after login in")
Now,the “xxl-job-admin” project is deployed success. Now,the “xxl-job-admin” project is deployed success.
@ -371,16 +371,16 @@ Now lets create a "GLUE模式(Java)" job,if you want to learn more about it ,
#### Step 1:Create new job #### Step 1:Create new job
Login in xxl-job-admin,click on the"新建任务" button, configure the job params as follows and click "保存" button to save the job info. Login in xxl-job-admin,click on the"新建任务" button, configure the job params as follows and click "保存" button to save the job info.
![task management](https://www.xuxueli.com/xxl-job/data/images/img_o8HQ.png "task management") ![task management](https://www.xuxueli.com/doc/static/xxl-job/images/img_o8HQ.png "task management")
![create task](https://www.xuxueli.com/xxl-job/data/images/img_ZAsz.png "create task") ![create task](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAsz.png "create task")
#### Step 2develop “GLUE模式(Java)” job #### Step 2develop “GLUE模式(Java)” job
Click “GLUE” button on the right of the job to go to GLUE editor view as shown below。“GLUE模式(Java)” mode task has been inited with default task code for printing Hello World。 “GLUE模式(Java)” mode task is a java code fragment implements IJobHandler interface,it will be executed in executor,you can use @Resource/@Autowire to inject other java bean instance,if you want to see more info please go to chapter 3 Click “GLUE” button on the right of the job to go to GLUE editor view as shown below。“GLUE模式(Java)” mode task has been inited with default task code for printing Hello World。 “GLUE模式(Java)” mode task is a java code fragment implements IJobHandler interface,it will be executed in executor,you can use @Resource/@Autowire to inject other java bean instance,if you want to see more info please go to chapter 3
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Fgql.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Fgql.png "在这里输入图片标题")
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_dNUJ.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_dNUJ.png "在这里输入图片标题")
#### Step 3:trigger task #### Step 3:trigger task
If you want to run the job manually please click "执行" button on the right of the job(usually we trigger job by Cron expression) If you want to run the job manually please click "执行" button on the right of the job(usually we trigger job by Cron expression)
@ -388,11 +388,11 @@ If you want to run the job manually please click "执行" button on the right of
#### Step 4:view log #### Step 4:view log
Click “日志” button on the right side of the task you will go to the task log list ,you will see the schedule history records of the task and the schedule detail info,execution info and execution params.If you click the “执行日志” button on the right side of the task log record,you will go to log console and view the execute log in the course of task execution. Click “日志” button on the right side of the task you will go to the task log list ,you will see the schedule history records of the task and the schedule detail info,execution info and execution params.If you click the “执行日志” button on the right side of the task log record,you will go to log console and view the execute log in the course of task execution.
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_inc8.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_inc8.png "在这里输入图片标题")
On the log console,you can view task execution log on the executor immediately after it dump to log file,so you can monitor the task execution process by Rolling way. On the log console,you can view task execution log on the executor immediately after it dump to log file,so you can monitor the task execution process by Rolling way.
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_eYrv.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_eYrv.png "在这里输入图片标题")
## 3. Task details ## 3. Task details
@ -440,12 +440,12 @@ The task logic exist in the executor project as JobHandler,the develop steps as
- 3, add “@JobHandler(value=" customize jobhandler name")” annotationthe value stand for JobHandler name,it will be used as JobHandler property when create a new task in the schedule center. - 3, add “@JobHandler(value=" customize jobhandler name")” annotationthe value stand for JobHandler name,it will be used as JobHandler property when create a new task in the schedule center.
go and see DemoJobHandler in the xxl-job-executor-example project, as shown below go and see DemoJobHandler in the xxl-job-executor-example project, as shown below
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_oLlM.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_oLlM.png "在这里输入图片标题")
#### Step 2:create task in schedule center #### Step 2:create task in schedule center
If you want learn more about configure item please go and sedd “Description of configuration item”select "BEAN模式" as run modeproperty JobHandler please fill in the value defined by @JobHande. If you want learn more about configure item please go and sedd “Description of configuration item”select "BEAN模式" as run modeproperty JobHandler please fill in the value defined by @JobHande.
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_ZAsz.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAsz.png "在这里输入图片标题")
### 3.2 GLUE模式(Java) ### 3.2 GLUE模式(Java)
Task source code is maintained in the schedule center and can be updated by Web IDE online, it will be compiled and effective real-time,didnt need to assign JobHandler,develop flow shown as below: Task source code is maintained in the schedule center and can be updated by Web IDE online, it will be compiled and effective real-time,didnt need to assign JobHandler,develop flow shown as below:
@ -453,14 +453,14 @@ Task source code is maintained in the schedule center and can be updated by Web
#### Step 1:create task in schedule center #### Step 1:create task in schedule center
If you want learn more about configure item please go and sedd “Description of configuration item”select "GLUE模式(Java)" as run mode. If you want learn more about configure item please go and sedd “Description of configuration item”select "GLUE模式(Java)" as run mode.
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_tJOq.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_tJOq.png "在这里输入图片标题")
#### Step 2:develop task source code #### Step 2:develop task source code
Select the task record and click “GLUE” button on the righe of it,it will go to GLUE tasks WEB IDE page,on this page yo can edit you task code(also can edit in other IDE tools,copy and paste into this page). Select the task record and click “GLUE” button on the righe of it,it will go to GLUE tasks WEB IDE page,on this page yo can edit you task code(also can edit in other IDE tools,copy and paste into this page).
Version backtracksupport 30 versions while backtrackon the WEB IDE page of GLUE task,on upper right corner drop down box please select “版本回溯”,it will display GLUE updated history,select the version you want it will display the source code of this version,it will backtrace the version while click save button. Version backtracksupport 30 versions while backtrackon the WEB IDE page of GLUE task,on upper right corner drop down box please select “版本回溯”,it will display GLUE updated history,select the version you want it will display the source code of this version,it will backtrace the version while click save button.
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_dNUJ.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_dNUJ.png "在这里输入图片标题")
### 3.3 GLUE模式(Shell) ### 3.3 GLUE模式(Shell)
@ -472,7 +472,7 @@ Select the task record and click “GLUE” button on the righe of it,it will go
Actually it is a shell script fragment. Actually it is a shell script fragment.
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_iUw0.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_iUw0.png "在这里输入图片标题")
### 3.4 GLUE模式(Python) ### 3.4 GLUE模式(Python)
@ -484,19 +484,19 @@ Select the task record and click “GLUE” button on the righe of it,it will go
Actually it is a python script fragment. Actually it is a python script fragment.
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_BPLG.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_BPLG.png "在这里输入图片标题")
## 4. Task Management ## 4. Task Management
### 4.0 configure executor ### 4.0 configure executor
click"执行器管理" on the left menu,it will go to the page as shown below: click"执行器管理" on the left menu,it will go to the page as shown below:
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Hr2T.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Hr2T.png "在这里输入图片标题")
   1,"调度中心OnLine”:display schedule center machine list,when task is scheduled it will callback schedule center for notify the execution result in failover mode, so that it can avoid a single point scheduler;    1,"调度中心OnLine”:display schedule center machine list,when task is scheduled it will callback schedule center for notify the execution result in failover mode, so that it can avoid a single point scheduler;
   2,"执行器列表" :display all nodes under this executor group.    2,"执行器列表" :display all nodes under this executor group.
If you want to create a new executor,please click "+新增执行器" button: If you want to create a new executor,please click "+新增执行器" button:
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_V3vF.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_V3vF.png "在这里输入图片标题")
### Description of executor attributes ### Description of executor attributes
@ -523,19 +523,19 @@ choose the task you want to edit and click” GLUE”button on the right side of
### 4.4 pause/recover task ### 4.4 pause/recover task
You can pause or recover task but it just fit to follow up schedule trigger and wont affect scheduled tasks,if you want to stop tasks which has been triggered,please go and see “4.8 stop the running task” You can pause or recover task but it just fit to follow up schedule trigger and wont affect scheduled tasks,if you want to stop tasks which has been triggered,please go and see “4.8 stop the running task”
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_ZAhX.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAhX.png "在这里输入图片标题")
### 4.5 manually trigger ### 4.5 manually trigger
You can trigger a task manually by Click “执行”button,it wont affect original scheduling rules. You can trigger a task manually by Click “执行”button,it wont affect original scheduling rules.
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Z5wp.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Z5wp.png "在这里输入图片标题")
### 4.6 view schedule log ### 4.6 view schedule log
You can view tasks history schedule log by click “日志” button,on the history schedule log list page you can view every time of tasks schedule result,execution result and so on,click “执行日志” button can view the tasks full execute log. You can view tasks history schedule log by click “日志” button,on the history schedule log list page you can view every time of tasks schedule result,execution result and so on,click “执行日志” button can view the tasks full execute log.
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_9235.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_9235.png "在这里输入图片标题")
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_inc8.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_inc8.png "在这里输入图片标题")
调度时间:schedule center trigger time when schedule and send execution signal to executor; 调度时间:schedule center trigger time when schedule and send execution signal to executor;
调度结果:schedule center trigger tasks result, 200 represent success,500 or other number stands for fail; 调度结果:schedule center trigger tasks result, 200 represent success,500 or other number stands for fail;
@ -553,12 +553,12 @@ You can view tasks history schedule log by click “日志” button,on the h
### 4.7 view execution log ### 4.7 view execution log
Click the “执行日志” button on the right side of the record,you can go to the execution log page,you can view the full execution log of the logic business code, shown as below: Click the “执行日志” button on the right side of the record,you can go to the execution log page,you can view the full execution log of the logic business code, shown as below:
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_tvGI.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_tvGI.png "在这里输入图片标题")
### 4.8 stop running tasks ### 4.8 stop running tasks
Just fit to running tasks,on the task log list page,click “终止任务” button on the right side of the record, it will send stop command to the executor where the task was executed,finally the task was killed and the task instance execute queue of this task will be clear. Just fit to running tasks,on the task log list page,click “终止任务” button on the right side of the record, it will send stop command to the executor where the task was executed,finally the task was killed and the task instance execute queue of this task will be clear.
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_hIci.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_hIci.png "在这里输入图片标题")
It is implemented by interrupt execute thread, it will trigger InterruptedException.so if JobHandler catch this execuption and handle this exception this function is unavailable. It is implemented by interrupt execute thread, it will trigger InterruptedException.so if JobHandler catch this execuption and handle this exception this function is unavailable.
@ -579,14 +579,14 @@ If JobHandler start child thread,child thread also must not catch InterruptedExc
### 4.9 delete execution log ### 4.9 delete execution log
On the task log list page, after you select executor and task, you can click"删除" button on the right side and it will pop-up "日志清理" window,on the pop-up window you can choose different log delete policy,choose the policy you want to execute and click "确定" button it will delele relative logs: On the task log list page, after you select executor and task, you can click"删除" button on the right side and it will pop-up "日志清理" window,on the pop-up window you can choose different log delete policy,choose the policy you want to execute and click "确定" button it will delele relative logs:
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Ypik.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Ypik.png "在这里输入图片标题")
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_EB65.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_EB65.png "在这里输入图片标题")
### 4.10 delete task ### 4.10 delete task
Click the delete button on the right side of the task,the task will be deteted. Click the delete button on the right side of the task,the task will be deteted.
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Z9Qr.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Z9Qr.png "在这里输入图片标题")
## 5. Overall design ## 5. Overall design
### 5.1 Source directory introduction ### 5.1 Source directory introduction
@ -601,7 +601,7 @@ XXL-JOB schedule module is implemented based on Quartz cluster,its “databas
XXL-JOB custom Quartz table structure prefix(XXL_JOB_QRTZ_). XXL-JOB custom Quartz table structure prefix(XXL_JOB_QRTZ_).
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_bNwm.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_bNwm.png "在这里输入图片标题")
The added tables as shown below: The added tables as shown below:
- XXL_JOB_QRTZ_TRIGGER_GROUP:executor basic table, maintain the info about the executor; - XXL_JOB_QRTZ_TRIGGER_GROUP:executor basic table, maintain the info about the executor;
@ -630,7 +630,7 @@ So schedule and task can be decoupled from each other, by the way it can improve
#### 5.3.3 Architecture diagram #### 5.3.3 Architecture diagram
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Qohm.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Qohm.png "在这里输入图片标题")
### 5.4 Schedule module analysis ### 5.4 Schedule module analysis
#### 5.4.1 Disadvantage of quartz #### 5.4.1 Disadvantage of quartz
@ -713,7 +713,7 @@ If executor project was deployed as cluster schedule center will known all onlin
When "路由策略" select "故障转移(FAILOVER)",it will send heart beat check request in order while schedule center start schedule request. The first alive checked executor node will be selected and send schedule request to it. When "路由策略" select "故障转移(FAILOVER)",it will send heart beat check request in order while schedule center start schedule request. The first alive checked executor node will be selected and send schedule request to it.
“调度备注” can be viewed on the monitor page when schedule success. As shown below: “调度备注” can be viewed on the monitor page when schedule success. As shown below:
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_jrdI.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_jrdI.png "在这里输入图片标题")
“调度备注” will display local schedule route path、executors "注册方式"、"地址列表" and tasks "路由策略"。Under "故障转移(FAILOVER)" policy, schedule center take first address to do heartbeat detection, heat beat fail will automatically skip, the second address heart beat fail…… until the third address “127.0.0.1:9999” heart beat success, it was selected as target executor, then send schedule request to target executor, now the schedule process is end wait for the executors callback execution result. “调度备注” will display local schedule route path、executors "注册方式"、"地址列表" and tasks "路由策略"。Under "故障转移(FAILOVER)" policy, schedule center take first address to do heartbeat detection, heat beat fail will automatically skip, the second address heart beat fail…… until the third address “127.0.0.1:9999” heart beat success, it was selected as target executor, then send schedule request to target executor, now the schedule process is end wait for the executors callback execution result.
@ -743,9 +743,9 @@ When parent task end execute and success, it will match child task dependency ac
On the task log page ,you can see matched child task and triggered child tasks log info when you “查看”button of “执行备注”,otherwise the child task didint execute, as shown beleow: On the task log page ,you can see matched child task and triggered child tasks log info when you “查看”button of “执行备注”,otherwise the child task didint execute, as shown beleow:
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Wb2o.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Wb2o.png "在这里输入图片标题")
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_jOAU.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_jOAU.png "在这里输入图片标题")
### 5.5 Task "run mode" analysis ### 5.5 Task "run mode" analysis
#### 5.5.1 "Bean模式" task #### 5.5.1 "Bean模式" task

@ -456,7 +456,7 @@ XXL-JOB是一个轻量级分布式任务调度平台其核心设计目标是
默认登录账号 "admin/123456", 登录后运行界面如下图所示。 默认登录账号 "admin/123456", 登录后运行界面如下图所示。
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_6yC0.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_6yC0.png "在这里输入图片标题")
至此“调度中心”项目已经部署成功。 至此“调度中心”项目已经部署成功。
@ -582,18 +582,18 @@ public XxlJobSpringExecutor xxlJobExecutor() {
#### 步骤一:新建任务: #### 步骤一:新建任务:
登录调度中心,点击下图所示“新建任务”按钮,新建示例任务。然后,参考下面截图中任务的参数配置,点击保存。 登录调度中心,点击下图所示“新建任务”按钮,新建示例任务。然后,参考下面截图中任务的参数配置,点击保存。
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_o8HQ.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_o8HQ.png "在这里输入图片标题")
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_ZAsz.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAsz.png "在这里输入图片标题")
#### 步骤二“GLUE模式(Java)” 任务开发: #### 步骤二“GLUE模式(Java)” 任务开发:
请点击任务右侧 “GLUE” 按钮,进入 “GLUE编辑器开发界面” 见下图。“GLUE模式(Java)” 运行模式的任务默认已经初始化了示例任务代码即打印Hello World。 请点击任务右侧 “GLUE” 按钮,进入 “GLUE编辑器开发界面” 见下图。“GLUE模式(Java)” 运行模式的任务默认已经初始化了示例任务代码即打印Hello World。
“GLUE模式(Java)” 运行模式的任务实际上是一段继承自IJobHandler的Java类代码它在执行器项目中运行可使用@Resource/@Autowire注入执行器里中的其他服务详细介绍请查看第三章节 “GLUE模式(Java)” 运行模式的任务实际上是一段继承自IJobHandler的Java类代码它在执行器项目中运行可使用@Resource/@Autowire注入执行器里中的其他服务详细介绍请查看第三章节
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Fgql.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Fgql.png "在这里输入图片标题")
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_dNUJ.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_dNUJ.png "在这里输入图片标题")
#### 步骤三:触发执行: #### 步骤三:触发执行:
请点击任务右侧 “执行” 按钮可手动触发一次任务执行通常情况下通过配置Cron表达式进行任务调度出发 请点击任务右侧 “执行” 按钮可手动触发一次任务执行通常情况下通过配置Cron表达式进行任务调度出发
@ -602,11 +602,11 @@ public XxlJobSpringExecutor xxlJobExecutor() {
请点击任务右侧 “日志” 按钮,可前往任务日志界面查看任务日志。 请点击任务右侧 “日志” 按钮,可前往任务日志界面查看任务日志。
在任务日志界面中,可查看该任务的历史调度记录以及每一次调度的任务调度信息、执行参数和执行信息。运行中的任务点击右侧的“执行日志”按钮,可进入日志控制台查看实时执行日志。 在任务日志界面中,可查看该任务的历史调度记录以及每一次调度的任务调度信息、执行参数和执行信息。运行中的任务点击右侧的“执行日志”按钮,可进入日志控制台查看实时执行日志。
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_inc8.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_inc8.png "在这里输入图片标题")
在日志控制台可以Rolling方式实时查看任务在执行器一侧运行输出的日志信息实时监控任务进度 在日志控制台可以Rolling方式实时查看任务在执行器一侧运行输出的日志信息实时监控任务进度
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_eYrv.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_eYrv.png "在这里输入图片标题")
## 三、任务详解 ## 三、任务详解
@ -658,12 +658,12 @@ public XxlJobSpringExecutor xxlJobExecutor() {
- 4、执行日志需要通过 "XxlJobLogger.log" 打印执行日志; - 4、执行日志需要通过 "XxlJobLogger.log" 打印执行日志;
可参考Sample示例执行器中的DemoJobHandler见下图 可参考Sample示例执行器中的DemoJobHandler见下图
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_oLlM.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_oLlM.png "在这里输入图片标题")
#### 步骤二:调度中心,新建调度任务 #### 步骤二:调度中心,新建调度任务
参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "BEAN模式"JobHandler属性填写任务注解“@JobHandler”中定义的值 参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "BEAN模式"JobHandler属性填写任务注解“@JobHandler”中定义的值
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_ZAsz.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAsz.png "在这里输入图片标题")
#### 原生内置Bean模式任务 #### 原生内置Bean模式任务
为方便用户参考与快速实用示例执行器内原生提供多个Bean模式任务Handler可以直接配置实用如下 为方便用户参考与快速实用示例执行器内原生提供多个Bean模式任务Handler可以直接配置实用如下
@ -680,14 +680,14 @@ public XxlJobSpringExecutor xxlJobExecutor() {
#### 步骤一:调度中心,新建调度任务: #### 步骤一:调度中心,新建调度任务:
参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "GLUE模式(Java)" 参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "GLUE模式(Java)"
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_tJOq.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_tJOq.png "在这里输入图片标题")
#### 步骤二:开发任务代码: #### 步骤二:开发任务代码:
选中指定任务点击该任务右侧“GLUE”按钮将会前往GLUE任务的Web IDE界面在该界面支持对任务代码进行开发也可以在IDE中开发完成后复制粘贴到编辑中 选中指定任务点击该任务右侧“GLUE”按钮将会前往GLUE任务的Web IDE界面在该界面支持对任务代码进行开发也可以在IDE中开发完成后复制粘贴到编辑中
版本回溯功能支持30个版本的版本回溯在GLUE任务的Web IDE界面选择右上角下拉框“版本回溯”会列出该GLUE的更新历史选择相应版本即可显示该版本代码保存后GLUE代码即回退到对应的历史版本 版本回溯功能支持30个版本的版本回溯在GLUE任务的Web IDE界面选择右上角下拉框“版本回溯”会列出该GLUE的更新历史选择相应版本即可显示该版本代码保存后GLUE代码即回退到对应的历史版本
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_dNUJ.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_dNUJ.png "在这里输入图片标题")
### 3.3 GLUE模式(Shell) ### 3.3 GLUE模式(Shell)
@ -699,7 +699,7 @@ public XxlJobSpringExecutor xxlJobExecutor() {
该模式的任务实际上是一段 "shell" 脚本; 该模式的任务实际上是一段 "shell" 脚本;
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_iUw0.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_iUw0.png "在这里输入图片标题")
### 3.4 GLUE模式(Python) ### 3.4 GLUE模式(Python)
@ -711,7 +711,7 @@ public XxlJobSpringExecutor xxlJobExecutor() {
该模式的任务实际上是一段 "python" 脚本; 该模式的任务实际上是一段 "python" 脚本;
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_BPLG.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_BPLG.png "在这里输入图片标题")
### 3.5 GLUE模式(NodeJS) ### 3.5 GLUE模式(NodeJS)
@ -735,14 +735,14 @@ public XxlJobSpringExecutor xxlJobExecutor() {
### 4.1 配置执行器 ### 4.1 配置执行器
点击进入"执行器管理"界面, 如下图: 点击进入"执行器管理"界面, 如下图:
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Hr2T.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Hr2T.png "在这里输入图片标题")
1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险; 1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险;
2、"执行器列表" 中显示在线的执行器列表, 可通过"OnLine 机器"查看对应执行器的集群机器。 2、"执行器列表" 中显示在线的执行器列表, 可通过"OnLine 机器"查看对应执行器的集群机器。
点击按钮 "+新增执行器" 弹框如下图, 可新增执行器配置: 点击按钮 "+新增执行器" 弹框如下图, 可新增执行器配置:
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_V3vF.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_V3vF.png "在这里输入图片标题")
### 执行器属性说明 ### 执行器属性说明
@ -770,19 +770,19 @@ public XxlJobSpringExecutor xxlJobExecutor() {
可对任务进行“启动”和“停止”操作。 可对任务进行“启动”和“停止”操作。
需要注意的是,此处的启动/停止仅针对任务的后续调度触发行为不会影响到已经触发的调度任务如需终止已经触发的调度任务可查看“4.9 终止运行中的任务” 需要注意的是,此处的启动/停止仅针对任务的后续调度触发行为不会影响到已经触发的调度任务如需终止已经触发的调度任务可查看“4.9 终止运行中的任务”
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_ZAhX.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAhX.png "在这里输入图片标题")
### 4.6 手动触发一次调度 ### 4.6 手动触发一次调度
点击“执行”按钮,可手动触发一次任务调度,不影响原有调度规则。 点击“执行”按钮,可手动触发一次任务调度,不影响原有调度规则。
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_ZAhX.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAhX.png "在这里输入图片标题")
### 4.7 查看调度日志 ### 4.7 查看调度日志
点击“日志”按钮,可以查看任务历史调度日志。在历史调入日志界面可查看每次任务调度的调度结果、执行结果等,点击“执行日志”按钮可查看执行器完整日志。 点击“日志”按钮,可以查看任务历史调度日志。在历史调入日志界面可查看每次任务调度的调度结果、执行结果等,点击“执行日志”按钮可查看执行器完整日志。
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_ZAhX.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_ZAhX.png "在这里输入图片标题")
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_UDSo.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_UDSo.png "在这里输入图片标题")
调度时间:"调度中心"触发本次调度并向"执行器"发送任务执行信号的时间; 调度时间:"调度中心"触发本次调度并向"执行器"发送任务执行信号的时间;
调度结果:"调度中心"触发本次调度的结果200表示成功500或其他表示失败 调度结果:"调度中心"触发本次调度的结果200表示成功500或其他表示失败
@ -800,13 +800,13 @@ public XxlJobSpringExecutor xxlJobExecutor() {
### 4.8 查看执行日志 ### 4.8 查看执行日志
点击执行日志右侧的 “执行日志” 按钮,可跳转至执行日志界面,可以查看业务代码中打印的完整日志,如下图; 点击执行日志右侧的 “执行日志” 按钮,可跳转至执行日志界面,可以查看业务代码中打印的完整日志,如下图;
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_tvGI.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_tvGI.png "在这里输入图片标题")
### 4.9 终止运行中的任务 ### 4.9 终止运行中的任务
仅针对执行中的任务。 仅针对执行中的任务。
在任务日志界面,点击右侧的“终止任务”按钮,将会向本次任务对应的执行器发送任务终止请求,将会终止掉本次任务,同时会清空掉整个任务执行队列。 在任务日志界面,点击右侧的“终止任务”按钮,将会向本次任务对应的执行器发送任务终止请求,将会终止掉本次任务,同时会清空掉整个任务执行队列。
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_hIci.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_hIci.png "在这里输入图片标题")
任务终止时通过 "interrupt" 执行线程的方式实现, 将会触发 "InterruptedException" 异常。因此如果JobHandler内部catch到了该异常并消化掉的话, 任务终止功能将不可用。 任务终止时通过 "interrupt" 执行线程的方式实现, 将会触发 "InterruptedException" 异常。因此如果JobHandler内部catch到了该异常并消化掉的话, 任务终止功能将不可用。
@ -829,14 +829,14 @@ try{
### 4.10 删除执行日志 ### 4.10 删除执行日志
在任务日志界面,选中执行器和任务之后,点击右侧的"删除"按钮将会出现"日志清理"弹框,弹框中支持选择不同类型的日志清理策略,选中后点击"确定"按钮即可进行日志清理操作; 在任务日志界面,选中执行器和任务之后,点击右侧的"删除"按钮将会出现"日志清理"弹框,弹框中支持选择不同类型的日志清理策略,选中后点击"确定"按钮即可进行日志清理操作;
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Ypik.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Ypik.png "在这里输入图片标题")
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_EB65.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_EB65.png "在这里输入图片标题")
### 4.11 删除任务 ### 4.11 删除任务
点击删除按钮,可以删除对应任务。 点击删除按钮,可以删除对应任务。
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Z9Qr.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Z9Qr.png "在这里输入图片标题")
### 4.12 用户管理 ### 4.12 用户管理
进入 "用户管理" 界面,可查看和管理用户信息; 进入 "用户管理" 界面,可查看和管理用户信息;
@ -845,9 +845,9 @@ try{
- 管理员:拥有全量权限,支持在线管理用户信息,为用户分配权限,权限分配粒度为执行器; - 管理员:拥有全量权限,支持在线管理用户信息,为用户分配权限,权限分配粒度为执行器;
- 普通用户:仅拥有被分配权限的执行器,及相关任务的操作权限; - 普通用户:仅拥有被分配权限的执行器,及相关任务的操作权限;
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_1001.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_1001.png "在这里输入图片标题")
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_1002.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_1002.png "在这里输入图片标题")
## 五、总体设计 ## 五、总体设计
@ -888,7 +888,7 @@ XXL-JOB调度模块基于自研调度组件并支持集群部署调度数据
#### 5.3.3 架构图 #### 5.3.3 架构图
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Qohm.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Qohm.png "在这里输入图片标题")
### 5.4 调度模块剖析 ### 5.4 调度模块剖析
#### 5.4.1 quartz的不足 #### 5.4.1 quartz的不足
@ -942,7 +942,7 @@ xxl-job-admin#com.xxl.job.admin.controller.JobApiController.callback
当任务"路由策略"选择"故障转移(FAILOVER)"时,当调度中心每次发起调度请求时,会按照顺序对执行器发出心跳检测请求,第一个检测为存活状态的执行器将会被选定并发送调度请求。 当任务"路由策略"选择"故障转移(FAILOVER)"时,当调度中心每次发起调度请求时,会按照顺序对执行器发出心跳检测请求,第一个检测为存活状态的执行器将会被选定并发送调度请求。
调度成功后,可在日志监控界面查看“调度备注”,如下; 调度成功后,可在日志监控界面查看“调度备注”,如下;
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_jrdI.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_jrdI.png "在这里输入图片标题")
“调度备注”可以看出本地调度运行轨迹,执行器的"注册方式"、"地址列表"和任务的"路由策略"。"故障转移(FAILOVER)"路由策略下,调度中心首先对第一个地址进行心跳检测,心跳失败因此自动跳过,第二个依然心跳检测失败…… “调度备注”可以看出本地调度运行轨迹,执行器的"注册方式"、"地址列表"和任务的"路由策略"。"故障转移(FAILOVER)"路由策略下,调度中心首先对第一个地址进行心跳检测,心跳失败因此自动跳过,第二个依然心跳检测失败……
直至心跳检测第三个地址“127.0.0.1:9999”成功选定为“目标执行器”然后对“目标执行器”发送调度请求调度流程结束等待执行器回调执行结果。 直至心跳检测第三个地址“127.0.0.1:9999”成功选定为“目标执行器”然后对“目标执行器”发送调度请求调度流程结束等待执行器回调执行结果。
@ -973,9 +973,9 @@ xxl-job-admin#com.xxl.job.admin.controller.JobApiController.callback
在任务日志界面,点击任务的“执行备注”的“查看”按钮,可以看到匹配子任务以及触发子任务执行的日志信息,如无信息则表示未触发子任务执行,可参考下图。 在任务日志界面,点击任务的“执行备注”的“查看”按钮,可以看到匹配子任务以及触发子任务执行的日志信息,如无信息则表示未触发子任务执行,可参考下图。
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_Wb2o.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_Wb2o.png "在这里输入图片标题")
![输入图片说明](https://www.xuxueli.com/xxl-job/data/images/img_jOAU.png "在这里输入图片标题") ![输入图片说明](https://www.xuxueli.com/doc/static/xxl-job/images/img_jOAU.png "在这里输入图片标题")
#### 5.4.11 全异步化 & 轻量级 #### 5.4.11 全异步化 & 轻量级

Loading…
Cancel
Save