xuxueli před 7 roky
rodič
revize
4bb33c7a05

+ 32 - 32
doc/XXL-JOB-English-Documentation.md Zobrazit soubor

227
 If you has finished step 1,then you can compile the project in maven and deploy the war package to tomcat.
227
 If you has finished step 1,then you can compile the project in maven and deploy the war package to tomcat.
228
 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
228
 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
229
 
229
 
230
-![index page after login in](https://static.oschina.net/uploads/img/201705/08194505_6yC0.png "index page after login in")
230
+![index page after login in](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_6yC0.png "index page after login in")
231
 
231
 
232
 Now,the “xxl-job-admin” project is deployed success.
232
 Now,the “xxl-job-admin” project is deployed success.
233
 
233
 
321
 #### Step 1:Create new job
321
 #### Step 1:Create new job
322
 Login in xxl-job-admin,click on the"新建任务" button, configure the job params as follows and click "保存" button to save the job info.
322
 Login in xxl-job-admin,click on the"新建任务" button, configure the job params as follows and click "保存" button to save the job info.
323
 
323
 
324
-![task management](https://static.oschina.net/uploads/img/201704/27205910_o8HQ.png "task management")
324
+![task management](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_o8HQ.png "task management")
325
 
325
 
326
-![create task](https://static.oschina.net/uploads/img/201704/27210202_SE2u.png "create task")
326
+![create task](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_SE2u.png "create task")
327
 
327
 
328
 #### Step 2:develop “GLUE模式(Java)” job
328
 #### Step 2:develop “GLUE模式(Java)” job
329
 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)
329
 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)
330
 
330
 
331
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27210307_Fgql.png "在这里输入图片标题")
331
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Fgql.png "在这里输入图片标题")
332
 
332
 
333
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27210314_dNUJ.png "在这里输入图片标题")
333
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_dNUJ.png "在这里输入图片标题")
334
 
334
 
335
 #### Step 3:trigger task
335
 #### Step 3:trigger task
336
 If you want to run the job manually please click "执行" button on the right of the job(usually we trigger job by Cron expression)
336
 If you want to run the job manually please click "执行" button on the right of the job(usually we trigger job by Cron expression)
338
 #### Step 4:view log 
338
 #### Step 4:view log 
339
 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.
339
 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.
340
 
340
 
341
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27232850_inc8.png "在这里输入图片标题")
341
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_inc8.png "在这里输入图片标题")
342
 
342
 
343
 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.
343
 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.
344
 
344
 
345
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27211631_eYrv.png "在这里输入图片标题")
345
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_eYrv.png "在这里输入图片标题")
346
 
346
 
347
 ## 3. Task details
347
 ## 3. Task details
348
 
348
 
390
     - 3, add  “@JobHandler(value=" customize jobhandler name")” annotation,the value stand for JobHandler name,it will be used as JobHandler property when create a new task in the schedule center.
390
     - 3, add  “@JobHandler(value=" customize jobhandler name")” annotation,the value stand for JobHandler name,it will be used as JobHandler property when create a new task in the schedule center.
391
     (go and see DemoJobHandler in the xxl-job-executor-example project, as shown below)
391
     (go and see DemoJobHandler in the xxl-job-executor-example project, as shown below)
392
 
392
 
393
-![输入图片说明](https://static.oschina.net/uploads/img/201607/23232347_oLlM.png "在这里输入图片标题")
393
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_oLlM.png "在这里输入图片标题")
394
 
394
 
395
 #### Step 2:create task in schedule center
395
 #### Step 2:create task in schedule center
396
 If you want learn more about configure item please go and sedd “Description of configuration item”,select  "BEAN模式" as run mode,property JobHandler please fill in the value defined by @JobHande.
396
 If you want learn more about configure item please go and sedd “Description of configuration item”,select  "BEAN模式" as run mode,property JobHandler please fill in the value defined by @JobHande.
397
 
397
 
398
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27225124_yrcO.png "在这里输入图片标题")
398
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_yrcO.png "在这里输入图片标题")
399
 
399
 
400
 ### 3.2 GLUE模式(Java)
400
 ### 3.2 GLUE模式(Java)
401
 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,didn’t need to assign JobHandler,develop flow shown as below:
401
 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,didn’t need to assign JobHandler,develop flow shown as below:
403
 #### Step 1:create task in schedule center
403
 #### Step 1:create task in schedule center
404
 If you want learn more about configure item please go and sedd “Description of configuration item”,select "GLUE模式(Java)" as run mode.
404
 If you want learn more about configure item please go and sedd “Description of configuration item”,select "GLUE模式(Java)" as run mode.
405
 
405
 
406
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27210202_SE2u.png "在这里输入图片标题")
406
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_SE2u.png "在这里输入图片标题")
407
 
407
 
408
 #### Step 2:develop task source code
408
 #### Step 2:develop task source code
409
 Select the task record and click “GLUE” button on the righe of it,it will go to GLUE task’s 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).
409
 Select the task record and click “GLUE” button on the righe of it,it will go to GLUE task’s 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).
410
 
410
 
411
 Version backtrack(support 30 versions while backtrack):on 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. 
411
 Version backtrack(support 30 versions while backtrack):on 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. 
412
 
412
 
413
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27210314_dNUJ.png "在这里输入图片标题")
413
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_dNUJ.png "在这里输入图片标题")
414
 
414
 
415
 ### 3.3 GLUE模式(Shell)
415
 ### 3.3 GLUE模式(Shell)
416
 
416
 
422
 
422
 
423
 Actually it is a shell script fragment.
423
 Actually it is a shell script fragment.
424
 
424
 
425
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27232259_iUw0.png "在这里输入图片标题")
425
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_iUw0.png "在这里输入图片标题")
426
 
426
 
427
 ### 3.4 GLUE模式(Python)
427
 ### 3.4 GLUE模式(Python)
428
 
428
 
434
 
434
 
435
 Actually it is a python script fragment.
435
 Actually it is a python script fragment.
436
 
436
 
437
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27232305_BPLG.png "在这里输入图片标题")
437
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_BPLG.png "在这里输入图片标题")
438
 
438
 
439
 
439
 
440
 ## 4. Task Management
440
 ## 4. Task Management
441
 ### 4.0 configure executor
441
 ### 4.0 configure executor
442
 click"执行器管理" on the left menu,it will go to the page as shown below:
442
 click"执行器管理" on the left menu,it will go to the page as shown below:
443
-![输入图片说明](https://static.oschina.net/uploads/img/201703/12223509_Hr2T.png "在这里输入图片标题")
443
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Hr2T.png "在这里输入图片标题")
444
 
444
 
445
     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;
445
     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;
446
     2,"执行器列表" :display all nodes under this executor group.
446
     2,"执行器列表" :display all nodes under this executor group.
447
 
447
 
448
 If you want to create a new executor,please click "+新增执行器" button: 
448
 If you want to create a new executor,please click "+新增执行器" button: 
449
-![输入图片说明](https://static.oschina.net/uploads/img/201703/12223617_g3Im.png "在这里输入图片标题")
449
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_g3Im.png "在这里输入图片标题")
450
 
450
 
451
 ### Description of executor attributes
451
 ### Description of executor attributes
452
 
452
 
473
 ### 4.4 pause/recover task
473
 ### 4.4 pause/recover task
474
 You can pause or recover task but it just fit to follow up schedule trigger and won’t affect scheduled tasks,if you want to stop tasks which has been triggered,please go and see “4.8 stop the running task”
474
 You can pause or recover task but it just fit to follow up schedule trigger and won’t affect scheduled tasks,if you want to stop tasks which has been triggered,please go and see “4.8 stop the running task”
475
 
475
 
476
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24130337_ZAhX.png "在这里输入图片标题")
476
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_ZAhX.png "在这里输入图片标题")
477
 
477
 
478
 ### 4.5 manually trigger
478
 ### 4.5 manually trigger
479
 You can trigger a task manually by Click “执行”button,it won’t affect original scheduling rules.
479
 You can trigger a task manually by Click “执行”button,it won’t affect original scheduling rules.
480
 
480
 
481
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24133348_Z5wp.png "在这里输入图片标题")
481
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Z5wp.png "在这里输入图片标题")
482
 
482
 
483
 ### 4.6 view schedule log
483
 ### 4.6 view schedule log
484
 You can view task’s history schedule log by click “日志” button,on the history schedule log list page you can view every time of task’s schedule result,execution result and so on,click “执行日志” button can view the task’s full execute log.
484
 You can view task’s history schedule log by click “日志” button,on the history schedule log list page you can view every time of task’s schedule result,execution result and so on,click “执行日志” button can view the task’s full execute log.
485
 
485
 
486
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24133500_9235.png "在这里输入图片标题")
486
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_9235.png "在这里输入图片标题")
487
 
487
 
488
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27232850_inc8.png "在这里输入图片标题")
488
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_inc8.png "在这里输入图片标题")
489
 
489
 
490
     调度时间:schedule center trigger time when schedule and send execution signal to executor;
490
     调度时间:schedule center trigger time when schedule and send execution signal to executor;
491
     调度结果:schedule center trigger task’s result, 200 represent success,500 or other number stands for fail;
491
     调度结果:schedule center trigger task’s result, 200 represent success,500 or other number stands for fail;
503
 ### 4.7 view execution log
503
 ### 4.7 view execution log
504
 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:
504
 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:
505
 
505
 
506
-![输入图片说明](https://static.oschina.net/uploads/img/201703/25124816_tvGI.png "在这里输入图片标题")
506
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_tvGI.png "在这里输入图片标题")
507
 
507
 
508
 ### 4.8 stop running tasks
508
 ### 4.8 stop running tasks
509
 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.
509
 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.
510
 
510
 
511
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24140048_hIci.png "在这里输入图片标题")
511
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_hIci.png "在这里输入图片标题")
512
 
512
 
513
 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.
513
 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.
514
 
514
 
529
 
529
 
530
 ### 4.9 delete execution log
530
 ### 4.9 delete execution log
531
 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:
531
 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:
532
-![输入图片说明](https://static.oschina.net/uploads/img/201705/08210711_Ypik.png "在这里输入图片标题")
532
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Ypik.png "在这里输入图片标题")
533
 
533
 
534
-![输入图片说明](https://static.oschina.net/uploads/img/201705/08211152_EB65.png "在这里输入图片标题")
534
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_EB65.png "在这里输入图片标题")
535
 
535
 
536
 ### 4.10 delete task
536
 ### 4.10 delete task
537
 Click the delete button on the right side of the task,the task will be deteted.
537
 Click the delete button on the right side of the task,the task will be deteted.
538
 
538
 
539
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24140641_Z9Qr.png "在这里输入图片标题")
539
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Z9Qr.png "在这里输入图片标题")
540
 
540
 
541
 ## 5. Overall design
541
 ## 5. Overall design
542
 ### 5.1 Source directory introduction
542
 ### 5.1 Source directory introduction
551
 
551
 
552
 XXL-JOB custom Quartz table structure prefix(XXL_JOB_QRTZ_).
552
 XXL-JOB custom Quartz table structure prefix(XXL_JOB_QRTZ_).
553
 
553
 
554
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24143957_bNwm.png "在这里输入图片标题")
554
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_bNwm.png "在这里输入图片标题")
555
 
555
 
556
 The added tables as shown below:
556
 The added tables as shown below:
557
     - XXL_JOB_QRTZ_TRIGGER_GROUP:executor basic table, maintain the info about the executor;
557
     - XXL_JOB_QRTZ_TRIGGER_GROUP:executor basic table, maintain the info about the executor;
580
 
580
 
581
 #### 5.3.3 Architecture diagram
581
 #### 5.3.3 Architecture diagram
582
 
582
 
583
-![输入图片说明](https://static.oschina.net/uploads/img/201707/17190028_aEE2.png "在这里输入图片标题")
583
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_aEE2.png "在这里输入图片标题")
584
 
584
 
585
 ### 5.4 Schedule module analysis
585
 ### 5.4 Schedule module analysis
586
 #### 5.4.1 Disadvantage of quartz
586
 #### 5.4.1 Disadvantage of quartz
661
 If executor project was deployed as cluster schedule center will known all online executor nodes,such as:“127.0.0.1:9997, 127.0.0.1:9998, 127.0.0.1:9999”.
661
 If executor project was deployed as cluster schedule center will known all online executor nodes,such as:“127.0.0.1:9997, 127.0.0.1:9998, 127.0.0.1:9999”.
662
 
662
 
663
 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.
663
 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.
664
-![输入图片说明](https://static.oschina.net/uploads/img/201705/11221144_P128.png "在这里输入图片标题")
664
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_P128.png "在这里输入图片标题")
665
 
665
 
666
 “调度备注” can be viewed on the monitor page when schedule success. As shown below: 
666
 “调度备注” can be viewed on the monitor page when schedule success. As shown below: 
667
-![输入图片说明](https://static.oschina.net/uploads/img/201703/12230733_jrdI.png "在这里输入图片标题")
667
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_jrdI.png "在这里输入图片标题")
668
 
668
 
669
 “调度备注” will display local schedule route path、executor’s "注册方式"、"地址列表" and task’s "路由策略"。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 executor’s callback execution result.
669
 “调度备注” will display local schedule route path、executor’s "注册方式"、"地址列表" and task’s "路由策略"。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 executor’s callback execution result.
670
 
670
 
675
 - 调度信息:include schedule time、schedule result and  schedule log  and so on,accord these parameters you can understand some task schedule info of schedule center.
675
 - 调度信息:include schedule time、schedule result and  schedule log  and so on,accord these parameters you can understand some task schedule info of schedule center.
676
 - 执行信息:include execute time、execute result and execute log and so on, accord these parameters you can understand the task execution info in the executor.
676
 - 执行信息:include execute time、execute result and execute log and so on, accord these parameters you can understand the task execution info in the executor.
677
 
677
 
678
-![输入图片说明](https://static.oschina.net/uploads/img/201703/12221436_c8Ru.png "在这里输入图片标题")
678
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_c8Ru.png "在这里输入图片标题")
679
 
679
 
680
 Schedule log stands fo single task schedule, attribute description is as follows:
680
 Schedule log stands fo single task schedule, attribute description is as follows:
681
 - 执行器地址:machine addresses on which task will be executed.
681
 - 执行器地址:machine addresses on which task will be executed.
696
 
696
 
697
 On the task log page ,you can see matched child task and triggered child task’s log info when you “查看”button of “执行备注”,otherwise the child task didin’t execute, as shown beleow:
697
 On the task log page ,you can see matched child task and triggered child task’s log info when you “查看”button of “执行备注”,otherwise the child task didin’t execute, as shown beleow:
698
 
698
 
699
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24194134_Wb2o.png "在这里输入图片标题")
699
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Wb2o.png "在这里输入图片标题")
700
 
700
 
701
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24194212_jOAU.png "在这里输入图片标题")
701
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_jOAU.png "在这里输入图片标题")
702
 
702
 
703
 ### 5.5 Task "run mode" analysis
703
 ### 5.5 Task "run mode" analysis
704
 #### 5.5.1 "Bean模式" task
704
 #### 5.5.1 "Bean模式" task
722
 #### 5.5.4 executor
722
 #### 5.5.4 executor
723
 Executor is actually an embedded Jetty server with default port 9999, as shown below(parameter:xxl.job.executor.port).
723
 Executor is actually an embedded Jetty server with default port 9999, as shown below(parameter:xxl.job.executor.port).
724
 
724
 
725
-![输入图片说明](https://static.oschina.net/uploads/img/201703/10174923_TgNO.png "在这里输入图片标题")
725
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_TgNO.png "在这里输入图片标题")
726
 
726
 
727
 Executor will identify Bean mode task in spring container through @JobHandler When project start, it will be managed use the value of annotation as key. 
727
 Executor will identify Bean mode task in spring container through @JobHandler When project start, it will be managed use the value of annotation as key. 
728
 
728
 

+ 29 - 29
doc/XXL-JOB官方文档.md Zobrazit soubor

246
 如果已经正确进行上述配置,可将项目编译打war包并部署到tomcat中。
246
 如果已经正确进行上述配置,可将项目编译打war包并部署到tomcat中。
247
 调度中心访问地址:http://localhost:8080/xxl-job-admin (该地址执行器将会使用到,作为回调地址),登录后运行界面如下图所示
247
 调度中心访问地址:http://localhost:8080/xxl-job-admin (该地址执行器将会使用到,作为回调地址),登录后运行界面如下图所示
248
 
248
 
249
-![输入图片说明](https://static.oschina.net/uploads/img/201705/08194505_6yC0.png "在这里输入图片标题")
249
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_6yC0.png "在这里输入图片标题")
250
 
250
 
251
 至此“调度中心”项目已经部署成功。
251
 至此“调度中心”项目已经部署成功。
252
 
252
 
351
 #### 步骤一:新建任务:
351
 #### 步骤一:新建任务:
352
 登录调度中心,点击下图所示“新建任务”按钮,新建示例任务。然后,参考下面截图中任务的参数配置,点击保存。
352
 登录调度中心,点击下图所示“新建任务”按钮,新建示例任务。然后,参考下面截图中任务的参数配置,点击保存。
353
 
353
 
354
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27205910_o8HQ.png "在这里输入图片标题")
354
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_o8HQ.png "在这里输入图片标题")
355
 
355
 
356
-![输入图片说明](https://static.oschina.net/uploads/img/201712/25183654_ZAsz.png "在这里输入图片标题")
356
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_ZAsz.png "在这里输入图片标题")
357
 
357
 
358
 
358
 
359
 #### 步骤二:“GLUE模式(Java)” 任务开发:
359
 #### 步骤二:“GLUE模式(Java)” 任务开发:
360
 请点击任务右侧 “GLUE” 按钮,进入 “GLUE编辑器开发界面” ,见下图。“GLUE模式(Java)” 运行模式的任务默认已经初始化了示例任务代码,即打印Hello World。
360
 请点击任务右侧 “GLUE” 按钮,进入 “GLUE编辑器开发界面” ,见下图。“GLUE模式(Java)” 运行模式的任务默认已经初始化了示例任务代码,即打印Hello World。
361
 ( “GLUE模式(Java)” 运行模式的任务实际上是一段继承自IJobHandler的Java类代码,它在执行器项目中运行,可使用@Resource/@Autowire注入执行器里中的其他服务,详细介绍请查看第三章节)
361
 ( “GLUE模式(Java)” 运行模式的任务实际上是一段继承自IJobHandler的Java类代码,它在执行器项目中运行,可使用@Resource/@Autowire注入执行器里中的其他服务,详细介绍请查看第三章节)
362
 
362
 
363
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27210307_Fgql.png "在这里输入图片标题")
363
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Fgql.png "在这里输入图片标题")
364
 
364
 
365
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27210314_dNUJ.png "在这里输入图片标题")
365
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_dNUJ.png "在这里输入图片标题")
366
 
366
 
367
 #### 步骤三:触发执行:
367
 #### 步骤三:触发执行:
368
 请点击任务右侧 “执行” 按钮,可手动触发一次任务执行(通常情况下,通过配置Cron表达式进行任务调度出发)。
368
 请点击任务右侧 “执行” 按钮,可手动触发一次任务执行(通常情况下,通过配置Cron表达式进行任务调度出发)。
371
 请点击任务右侧 “日志” 按钮,可前往任务日志界面查看任务日志。
371
 请点击任务右侧 “日志” 按钮,可前往任务日志界面查看任务日志。
372
 在任务日志界面中,可查看该任务的历史调度记录以及每一次调度的任务调度信息、执行参数和执行信息。运行中的任务点击右侧的“执行日志”按钮,可进入日志控制台查看实时执行日志。
372
 在任务日志界面中,可查看该任务的历史调度记录以及每一次调度的任务调度信息、执行参数和执行信息。运行中的任务点击右侧的“执行日志”按钮,可进入日志控制台查看实时执行日志。
373
 
373
 
374
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27232850_inc8.png "在这里输入图片标题")
374
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_inc8.png "在这里输入图片标题")
375
 
375
 
376
 在日志控制台,可以Rolling方式实时查看任务在执行器一侧运行输出的日志信息,实时监控任务进度;
376
 在日志控制台,可以Rolling方式实时查看任务在执行器一侧运行输出的日志信息,实时监控任务进度;
377
 
377
 
378
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27211631_eYrv.png "在这里输入图片标题")
378
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_eYrv.png "在这里输入图片标题")
379
 
379
 
380
 ## 三、任务详解
380
 ## 三、任务详解
381
 
381
 
426
      - 4、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
426
      - 4、执行日志:需要通过 "XxlJobLogger.log" 打印执行日志;
427
     (可参考Sample示例执行器中的DemoJobHandler,见下图)
427
     (可参考Sample示例执行器中的DemoJobHandler,见下图)
428
 
428
 
429
-![输入图片说明](https://static.oschina.net/uploads/img/201607/23232347_oLlM.png "在这里输入图片标题")
429
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_oLlM.png "在这里输入图片标题")
430
 
430
 
431
 #### 步骤二:调度中心,新建调度任务
431
 #### 步骤二:调度中心,新建调度任务
432
 参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "BEAN模式",JobHandler属性填写任务注解“@JobHandler”中定义的值;
432
 参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "BEAN模式",JobHandler属性填写任务注解“@JobHandler”中定义的值;
433
 
433
 
434
-![输入图片说明](https://static.oschina.net/uploads/img/201712/25183654_ZAsz.png "在这里输入图片标题")
434
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_ZAsz.png "在这里输入图片标题")
435
 
435
 
436
 ### 3.2 GLUE模式(Java)
436
 ### 3.2 GLUE模式(Java)
437
 任务以源码方式维护在调度中心,支持通过Web IDE在线更新,实时编译和生效,因此不需要指定JobHandler。开发流程如下:
437
 任务以源码方式维护在调度中心,支持通过Web IDE在线更新,实时编译和生效,因此不需要指定JobHandler。开发流程如下:
439
 #### 步骤一:调度中心,新建调度任务:
439
 #### 步骤一:调度中心,新建调度任务:
440
 参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "GLUE模式(Java)";
440
 参考上文“配置属性详细说明”对新建的任务进行参数配置,运行模式选中 "GLUE模式(Java)";
441
 
441
 
442
-![输入图片说明](https://static.oschina.net/uploads/img/201712/25183837_tJOq.png "在这里输入图片标题")
442
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_tJOq.png "在这里输入图片标题")
443
 
443
 
444
 #### 步骤二:开发任务代码:
444
 #### 步骤二:开发任务代码:
445
 选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发(也可以在IDE中开发完成后,复制粘贴到编辑中)。
445
 选中指定任务,点击该任务右侧“GLUE”按钮,将会前往GLUE任务的Web IDE界面,在该界面支持对任务代码进行开发(也可以在IDE中开发完成后,复制粘贴到编辑中)。
446
 
446
 
447
 版本回溯功能(支持30个版本的版本回溯):在GLUE任务的Web IDE界面,选择右上角下拉框“版本回溯”,会列出该GLUE的更新历史,选择相应版本即可显示该版本代码,保存后GLUE代码即回退到对应的历史版本;
447
 版本回溯功能(支持30个版本的版本回溯):在GLUE任务的Web IDE界面,选择右上角下拉框“版本回溯”,会列出该GLUE的更新历史,选择相应版本即可显示该版本代码,保存后GLUE代码即回退到对应的历史版本;
448
 
448
 
449
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27210314_dNUJ.png "在这里输入图片标题")
449
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_dNUJ.png "在这里输入图片标题")
450
 
450
 
451
 ### 3.3 GLUE模式(Shell)
451
 ### 3.3 GLUE模式(Shell)
452
 
452
 
458
 
458
 
459
 该模式的任务实际上是一段 "shell" 脚本;
459
 该模式的任务实际上是一段 "shell" 脚本;
460
 
460
 
461
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27232259_iUw0.png "在这里输入图片标题")
461
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_iUw0.png "在这里输入图片标题")
462
 
462
 
463
 ### 3.4 GLUE模式(Python)
463
 ### 3.4 GLUE模式(Python)
464
 
464
 
470
 
470
 
471
 该模式的任务实际上是一段 "python" 脚本;
471
 该模式的任务实际上是一段 "python" 脚本;
472
 
472
 
473
-![输入图片说明](https://static.oschina.net/uploads/img/201704/27232305_BPLG.png "在这里输入图片标题")
473
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_BPLG.png "在这里输入图片标题")
474
 
474
 
475
 ### 3.5 GLUE模式(NodeJS)
475
 ### 3.5 GLUE模式(NodeJS)
476
 
476
 
487
 
487
 
488
 ### 4.0 配置执行器  
488
 ### 4.0 配置执行器  
489
 点击进入"执行器管理"界面, 如下图:
489
 点击进入"执行器管理"界面, 如下图:
490
-![输入图片说明](https://static.oschina.net/uploads/img/201703/12223509_Hr2T.png "在这里输入图片标题")
490
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Hr2T.png "在这里输入图片标题")
491
 
491
 
492
     1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险;
492
     1、"调度中心OnLine:"右侧显示在线的"调度中心"列表, 任务执行结束后, 将会以failover的模式进行回调调度中心通知执行结果, 避免回调的单点风险;
493
     2、"执行器列表" 中显示在线的执行器列表, 可通过"OnLine 机器"查看对应执行器的集群机器。
493
     2、"执行器列表" 中显示在线的执行器列表, 可通过"OnLine 机器"查看对应执行器的集群机器。
494
 
494
 
495
 点击按钮 "+新增执行器" 弹框如下图, 可新增执行器配置:
495
 点击按钮 "+新增执行器" 弹框如下图, 可新增执行器配置:
496
 
496
 
497
-![输入图片说明](https://static.oschina.net/uploads/img/201712/25183958_V3vF.png "在这里输入图片标题")
497
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_V3vF.png "在这里输入图片标题")
498
 
498
 
499
 ### 执行器属性说明
499
 ### 执行器属性说明
500
 
500
 
522
 可对任务进行“暂停”和“恢复”操作。
522
 可对任务进行“暂停”和“恢复”操作。
523
 需要注意的是,此处的暂停/恢复仅针对任务的后续调度触发行为,不会影响到已经触发的调度任务,如需终止已经触发的调度任务,可查看“4.8 终止运行中的任务”
523
 需要注意的是,此处的暂停/恢复仅针对任务的后续调度触发行为,不会影响到已经触发的调度任务,如需终止已经触发的调度任务,可查看“4.8 终止运行中的任务”
524
 
524
 
525
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24130337_ZAhX.png "在这里输入图片标题")
525
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_ZAhX.png "在这里输入图片标题")
526
 
526
 
527
 ### 4.5 手动触发一次调度
527
 ### 4.5 手动触发一次调度
528
 点击“执行”按钮,可手动触发一次任务调度,不影响原有调度规则。
528
 点击“执行”按钮,可手动触发一次任务调度,不影响原有调度规则。
529
 
529
 
530
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24133348_Z5wp.png "在这里输入图片标题")
530
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Z5wp.png "在这里输入图片标题")
531
 
531
 
532
 ### 4.6 查看调度日志
532
 ### 4.6 查看调度日志
533
 点击“日志”按钮,可以查看任务历史调度日志。在历史调入日志界面可查看每次任务调度的调度结果、执行结果等,点击“执行日志”按钮可查看执行器完整日志。
533
 点击“日志”按钮,可以查看任务历史调度日志。在历史调入日志界面可查看每次任务调度的调度结果、执行结果等,点击“执行日志”按钮可查看执行器完整日志。
534
 
534
 
535
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24133500_9235.png "在这里输入图片标题")
535
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_9235.png "在这里输入图片标题")
536
 
536
 
537
-![输入图片说明](https://static.oschina.net/uploads/img/201712/25184206_UDSo.png "在这里输入图片标题")
537
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_UDSo.png "在这里输入图片标题")
538
 
538
 
539
     调度时间:"调度中心"触发本次调度并向"执行器"发送任务执行信号的时间;
539
     调度时间:"调度中心"触发本次调度并向"执行器"发送任务执行信号的时间;
540
     调度结果:"调度中心"触发本次调度的结果,200表示成功,500或其他表示失败;
540
     调度结果:"调度中心"触发本次调度的结果,200表示成功,500或其他表示失败;
552
 ### 4.7 查看执行日志
552
 ### 4.7 查看执行日志
553
 点击执行日志右侧的 “执行日志” 按钮,可跳转至执行日志界面,可以查看业务代码中打印的完整日志,如下图;
553
 点击执行日志右侧的 “执行日志” 按钮,可跳转至执行日志界面,可以查看业务代码中打印的完整日志,如下图;
554
 
554
 
555
-![输入图片说明](https://static.oschina.net/uploads/img/201703/25124816_tvGI.png "在这里输入图片标题")
555
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_tvGI.png "在这里输入图片标题")
556
 
556
 
557
 ### 4.8 终止运行中的任务
557
 ### 4.8 终止运行中的任务
558
 仅针对执行中的任务。
558
 仅针对执行中的任务。
559
 在任务日志界面,点击右侧的“终止任务”按钮,将会向本次任务对应的执行器发送任务终止请求,将会终止掉本次任务,同时会清空掉整个任务执行队列。
559
 在任务日志界面,点击右侧的“终止任务”按钮,将会向本次任务对应的执行器发送任务终止请求,将会终止掉本次任务,同时会清空掉整个任务执行队列。
560
 
560
 
561
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24140048_hIci.png "在这里输入图片标题")
561
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_hIci.png "在这里输入图片标题")
562
 
562
 
563
 任务终止时通过 "interrupt" 执行线程的方式实现, 将会触发 "InterruptedException" 异常。因此如果JobHandler内部catch到了该异常并消化掉的话, 任务终止功能将不可用。
563
 任务终止时通过 "interrupt" 执行线程的方式实现, 将会触发 "InterruptedException" 异常。因此如果JobHandler内部catch到了该异常并消化掉的话, 任务终止功能将不可用。
564
 
564
 
579
 
579
 
580
 ### 4.9 删除执行日志
580
 ### 4.9 删除执行日志
581
 在任务日志界面,选中执行器和任务之后,点击右侧的"删除"按钮将会出现"日志清理"弹框,弹框中支持选择不同类型的日志清理策略,选中后点击"确定"按钮即可进行日志清理操作;
581
 在任务日志界面,选中执行器和任务之后,点击右侧的"删除"按钮将会出现"日志清理"弹框,弹框中支持选择不同类型的日志清理策略,选中后点击"确定"按钮即可进行日志清理操作;
582
-![输入图片说明](https://static.oschina.net/uploads/img/201705/08210711_Ypik.png "在这里输入图片标题")
582
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Ypik.png "在这里输入图片标题")
583
 
583
 
584
-![输入图片说明](https://static.oschina.net/uploads/img/201705/08211152_EB65.png "在这里输入图片标题")
584
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_EB65.png "在这里输入图片标题")
585
 
585
 
586
 ### 4.10 删除任务
586
 ### 4.10 删除任务
587
 点击删除按钮,可以删除对应任务。
587
 点击删除按钮,可以删除对应任务。
588
 
588
 
589
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24140641_Z9Qr.png "在这里输入图片标题")
589
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Z9Qr.png "在这里输入图片标题")
590
 
590
 
591
 
591
 
592
 ## 五、总体设计
592
 ## 五、总体设计
602
 
602
 
603
 XXL-JOB首先定制了Quartz原生表结构前缀(XXL_JOB_QRTZ_)。
603
 XXL-JOB首先定制了Quartz原生表结构前缀(XXL_JOB_QRTZ_)。
604
 
604
 
605
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24143957_bNwm.png "在这里输入图片标题")
605
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_bNwm.png "在这里输入图片标题")
606
 
606
 
607
 然后,在此基础上新增了几张张扩展表,如下:
607
 然后,在此基础上新增了几张张扩展表,如下:
608
     - XXL_JOB_QRTZ_TRIGGER_GROUP:执行器信息表,维护任务执行器信息;
608
     - XXL_JOB_QRTZ_TRIGGER_GROUP:执行器信息表,维护任务执行器信息;
631
 
631
 
632
 #### 5.3.3 架构图
632
 #### 5.3.3 架构图
633
 
633
 
634
-![输入图片说明](https://static.oschina.net/uploads/img/201801/03103007_Qohm.png "在这里输入图片标题")
634
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Qohm.png "在这里输入图片标题")
635
 
635
 
636
 ### 5.4 调度模块剖析
636
 ### 5.4 调度模块剖析
637
 #### 5.4.1 quartz的不足
637
 #### 5.4.1 quartz的不足
727
 当任务"路由策略"选择"故障转移(FAILOVER)"时,当调度中心每次发起调度请求时,会按照顺序对执行器发出心跳检测请求,第一个检测为存活状态的执行器将会被选定并发送调度请求。
727
 当任务"路由策略"选择"故障转移(FAILOVER)"时,当调度中心每次发起调度请求时,会按照顺序对执行器发出心跳检测请求,第一个检测为存活状态的执行器将会被选定并发送调度请求。
728
 
728
 
729
 调度成功后,可在日志监控界面查看“调度备注”,如下;
729
 调度成功后,可在日志监控界面查看“调度备注”,如下;
730
-![输入图片说明](https://static.oschina.net/uploads/img/201703/12230733_jrdI.png "在这里输入图片标题")
730
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_jrdI.png "在这里输入图片标题")
731
 
731
 
732
 “调度备注”可以看出本地调度运行轨迹,执行器的"注册方式"、"地址列表"和任务的"路由策略"。"故障转移(FAILOVER)"路由策略下,调度中心首先对第一个地址进行心跳检测,心跳失败因此自动跳过,第二个依然心跳检测失败……
732
 “调度备注”可以看出本地调度运行轨迹,执行器的"注册方式"、"地址列表"和任务的"路由策略"。"故障转移(FAILOVER)"路由策略下,调度中心首先对第一个地址进行心跳检测,心跳失败因此自动跳过,第二个依然心跳检测失败……
733
 直至心跳检测第三个地址“127.0.0.1:9999”成功,选定为“目标执行器”;然后对“目标执行器”发送调度请求,调度流程结束,等待执行器回调执行结果。
733
 直至心跳检测第三个地址“127.0.0.1:9999”成功,选定为“目标执行器”;然后对“目标执行器”发送调度请求,调度流程结束,等待执行器回调执行结果。
758
 
758
 
759
 在任务日志界面,点击任务的“执行备注”的“查看”按钮,可以看到匹配子任务以及触发子任务执行的日志信息,如无信息则表示未触发子任务执行,可参考下图。
759
 在任务日志界面,点击任务的“执行备注”的“查看”按钮,可以看到匹配子任务以及触发子任务执行的日志信息,如无信息则表示未触发子任务执行,可参考下图。
760
 
760
 
761
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24194134_Wb2o.png "在这里输入图片标题")
761
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_Wb2o.png "在这里输入图片标题")
762
 
762
 
763
-![输入图片说明](https://static.oschina.net/uploads/img/201607/24194212_jOAU.png "在这里输入图片标题")
763
+![输入图片说明](https://raw.githubusercontent.com/xuxueli/xxl-job/master/doc/images/img_jOAU.png "在这里输入图片标题")
764
 
764
 
765
 ### 5.5 任务 "运行模式" 剖析
765
 ### 5.5 任务 "运行模式" 剖析
766
 #### 5.5.1 "Bean模式" 任务
766
 #### 5.5.1 "Bean模式" 任务

binární
doc/images/img_9235.png Zobrazit soubor


binární
doc/images/img_BPLG.png Zobrazit soubor


binární
doc/images/img_EB65.png Zobrazit soubor


binární
doc/images/img_Fgql.png Zobrazit soubor


binární
doc/images/img_Hr2T.png Zobrazit soubor


binární
doc/images/img_Qohm.png Zobrazit soubor


binární
doc/images/img_UDSo.png Zobrazit soubor


binární
doc/images/img_V3vF.png Zobrazit soubor


binární
doc/images/img_Wb2o.png Zobrazit soubor


binární
doc/images/img_Ypik.png Zobrazit soubor


binární
doc/images/img_Z5wp.png Zobrazit soubor


binární
doc/images/img_Z9Qr.png Zobrazit soubor


binární
doc/images/img_ZAhX.png Zobrazit soubor


binární
doc/images/img_ZAsz.png Zobrazit soubor


binární
doc/images/img_bNwm.png Zobrazit soubor


binární
doc/images/img_dNUJ.png Zobrazit soubor


binární
doc/images/img_eYrv.png Zobrazit soubor


binární
doc/images/img_hIci.png Zobrazit soubor


binární
doc/images/img_iUw0.png Zobrazit soubor


binární
doc/images/img_inc8.png Zobrazit soubor


binární
doc/images/img_jOAU.png Zobrazit soubor


binární
doc/images/img_jrdI.png Zobrazit soubor


binární
doc/images/img_o8HQ.png Zobrazit soubor


binární
doc/images/img_oLlM.png Zobrazit soubor


binární
doc/images/img_tJOq.png Zobrazit soubor


binární
doc/images/img_tvGI.png Zobrazit soubor