xxl-job的dotnet core 执行器实现
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

1 lines
45 KiB

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" contentStyleType="text/css" height="1744px" preserveAspectRatio="none" style="width:1475px;height:1744px;background:#FFFFFF;" version="1.1" viewBox="0 0 1475 1744" width="1475px" zoomAndPan="magnify"><title>XxlJob.Core - Class Diagram</title><defs/><g><text fill="#000000" font-family="sans-serif" font-size="14" font-weight="bold" lengthAdjust="spacing" textLength="219.5293" x="620.9126" y="22.9951">XxlJob.Core - Class Diagram</text><!--class XxlJobHttpHandler--><g id="elem_XxlJobHttpHandler"><rect codeLine="4" fill="#F1F1F1" height="64.2969" id="XxlJobHttpHandler" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="270.9658" x="860.5" y="44.2969"/><ellipse cx="927.3008" cy="60.2969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M930.2695,65.9375 Q929.6914,66.2344 929.0508,66.375 Q928.4102,66.5313 927.707,66.5313 Q925.207,66.5313 923.8789,64.8906 Q922.5664,63.2344 922.5664,60.1094 Q922.5664,56.9844 923.8789,55.3281 Q925.207,53.6719 927.707,53.6719 Q928.4102,53.6719 929.0508,53.8281 Q929.707,53.9844 930.2695,54.2813 L930.2695,57 Q929.6445,56.4219 929.0508,56.1563 Q928.457,55.875 927.832,55.875 Q926.4883,55.875 925.8008,56.9531 Q925.1133,58.0156 925.1133,60.1094 Q925.1133,62.2031 925.8008,63.2813 Q926.4883,64.3438 927.832,64.3438 Q928.457,64.3438 929.0508,64.0781 Q929.6445,63.7969 930.2695,63.2188 L930.2695,65.9375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="128.8643" x="947.8008" y="65.1436">XxlJobHttpHandler</text><line style="stroke:#181818;stroke-width:0.5;" x1="861.5" x2="1130.4658" y1="76.2969" y2="76.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="861.5" x2="1130.4658" y1="84.2969" y2="84.2969"/><ellipse cx="871.5" cy="97.9453" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="244.9658" x="880.5" y="101.292">HandleAsync(HttpContext context)</text></g><!--class ICommandExecutorFactory--><g id="elem_ICommandExecutorFactory"><rect codeLine="8" fill="#F1F1F1" height="64.2969" id="ICommandExecutorFactory" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="351.7734" x="820" y="168.2969"/><ellipse cx="896.3198" cy="184.2969" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M892.2417,180.0625 L892.2417,177.9063 L899.6323,177.9063 L899.6323,180.0625 L897.1636,180.0625 L897.1636,188.1406 L899.6323,188.1406 L899.6323,190.2969 L892.2417,190.2969 L892.2417,188.1406 L894.7104,188.1406 L894.7104,180.0625 L892.2417,180.0625 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="190.6338" x="916.8198" y="189.1436">ICommandExecutorFactory</text><line style="stroke:#181818;stroke-width:0.5;" x1="821" x2="1170.7734" y1="200.2969" y2="200.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="821" x2="1170.7734" y1="208.2969" y2="208.2969"/><ellipse cx="831" cy="221.9453" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="325.7734" x="840" y="225.292">GetCommandExecutor(string commandName)</text></g><!--class CommandExecutorFactory--><g id="elem_CommandExecutorFactory"><rect codeLine="12" fill="#F1F1F1" height="48" id="CommandExecutorFactory" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="218.5049" x="886.5" y="292.2969"/><ellipse cx="901.5" cy="308.2969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M904.4688,313.9375 Q903.8906,314.2344 903.25,314.375 Q902.6094,314.5313 901.9063,314.5313 Q899.4063,314.5313 898.0781,312.8906 Q896.7656,311.2344 896.7656,308.1094 Q896.7656,304.9844 898.0781,303.3281 Q899.4063,301.6719 901.9063,301.6719 Q902.6094,301.6719 903.25,301.8281 Q903.9063,301.9844 904.4688,302.2813 L904.4688,305 Q903.8438,304.4219 903.25,304.1563 Q902.6563,303.875 902.0313,303.875 Q900.6875,303.875 900,304.9531 Q899.3125,306.0156 899.3125,308.1094 Q899.3125,310.2031 900,311.2813 Q900.6875,312.3438 902.0313,312.3438 Q902.6563,312.3438 903.25,312.0781 Q903.8438,311.7969 904.4688,311.2188 L904.4688,313.9375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="186.5049" x="915.5" y="313.1436">CommandExecutorFactory</text><line style="stroke:#181818;stroke-width:0.5;" x1="887.5" x2="1104.0049" y1="324.2969" y2="324.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="887.5" x2="1104.0049" y1="332.2969" y2="332.2969"/></g><!--class ICommandExecutor--><g id="elem_ICommandExecutor"><rect codeLine="14" fill="#F1F1F1" height="80.5938" id="ICommandExecutor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="237.3877" x="877.5" y="400.2969"/><ellipse cx="922.8394" cy="416.2969" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M918.7612,412.0625 L918.7612,409.9063 L926.1519,409.9063 L926.1519,412.0625 L923.6831,412.0625 L923.6831,420.1406 L926.1519,420.1406 L926.1519,422.2969 L918.7612,422.2969 L918.7612,420.1406 L921.23,420.1406 L921.23,412.0625 L918.7612,412.0625 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="138.209" x="943.3394" y="421.1436">ICommandExecutor</text><line style="stroke:#181818;stroke-width:0.5;" x1="878.5" x2="1113.8877" y1="432.2969" y2="432.2969"/><ellipse cx="888.5" cy="445.9453" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="157.8965" x="897.5" y="449.292">string CommandName</text><line style="stroke:#181818;stroke-width:0.5;" x1="878.5" x2="1113.8877" y1="456.5938" y2="456.5938"/><ellipse cx="888.5" cy="470.2422" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="211.3877" x="897.5" y="473.5889">ExecuteAsync(byte[] payload)</text></g><!--class BeatCommandExecutor--><g id="elem_BeatCommandExecutor"><rect codeLine="18" fill="#F1F1F1" height="48" id="BeatCommandExecutor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="198.3662" x="525" y="541.2969"/><ellipse cx="540" cy="557.2969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M542.9688,562.9375 Q542.3906,563.2344 541.75,563.375 Q541.1094,563.5313 540.4063,563.5313 Q537.9063,563.5313 536.5781,561.8906 Q535.2656,560.2344 535.2656,557.1094 Q535.2656,553.9844 536.5781,552.3281 Q537.9063,550.6719 540.4063,550.6719 Q541.1094,550.6719 541.75,550.8281 Q542.4063,550.9844 542.9688,551.2813 L542.9688,554 Q542.3438,553.4219 541.75,553.1563 Q541.1563,552.875 540.5313,552.875 Q539.1875,552.875 538.5,553.9531 Q537.8125,555.0156 537.8125,557.1094 Q537.8125,559.2031 538.5,560.2813 Q539.1875,561.3438 540.5313,561.3438 Q541.1563,561.3438 541.75,561.0781 Q542.3438,560.7969 542.9688,560.2188 L542.9688,562.9375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="166.3662" x="554" y="562.1436">BeatCommandExecutor</text><line style="stroke:#181818;stroke-width:0.5;" x1="526" x2="722.3662" y1="573.2969" y2="573.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="526" x2="722.3662" y1="581.2969" y2="581.2969"/></g><!--class IdleBeatCommandExecutor--><g id="elem_IdleBeatCommandExecutor"><rect codeLine="19" fill="#F1F1F1" height="48" id="IdleBeatCommandExecutor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="223.8848" x="758" y="541.2969"/><ellipse cx="773" cy="557.2969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M775.9688,562.9375 Q775.3906,563.2344 774.75,563.375 Q774.1094,563.5313 773.4063,563.5313 Q770.9063,563.5313 769.5781,561.8906 Q768.2656,560.2344 768.2656,557.1094 Q768.2656,553.9844 769.5781,552.3281 Q770.9063,550.6719 773.4063,550.6719 Q774.1094,550.6719 774.75,550.8281 Q775.4063,550.9844 775.9688,551.2813 L775.9688,554 Q775.3438,553.4219 774.75,553.1563 Q774.1563,552.875 773.5313,552.875 Q772.1875,552.875 771.5,553.9531 Q770.8125,555.0156 770.8125,557.1094 Q770.8125,559.2031 771.5,560.2813 Q772.1875,561.3438 773.5313,561.3438 Q774.1563,561.3438 774.75,561.0781 Q775.3438,560.7969 775.9688,560.2188 L775.9688,562.9375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="191.8848" x="787" y="562.1436">IdleBeatCommandExecutor</text><line style="stroke:#181818;stroke-width:0.5;" x1="759" x2="980.8848" y1="573.2969" y2="573.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="759" x2="980.8848" y1="581.2969" y2="581.2969"/></g><!--class TiggerCommandExecutor--><g id="elem_TiggerCommandExecutor"><rect codeLine="20" fill="#F1F1F1" height="48" id="TiggerCommandExecutor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="210.6641" x="1017.5" y="541.2969"/><ellipse cx="1032.5" cy="557.2969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1035.4688,562.9375 Q1034.8906,563.2344 1034.25,563.375 Q1033.6094,563.5313 1032.9063,563.5313 Q1030.4063,563.5313 1029.0781,561.8906 Q1027.7656,560.2344 1027.7656,557.1094 Q1027.7656,553.9844 1029.0781,552.3281 Q1030.4063,550.6719 1032.9063,550.6719 Q1033.6094,550.6719 1034.25,550.8281 Q1034.9063,550.9844 1035.4688,551.2813 L1035.4688,554 Q1034.8438,553.4219 1034.25,553.1563 Q1033.6563,552.875 1033.0313,552.875 Q1031.6875,552.875 1031,553.9531 Q1030.3125,555.0156 1030.3125,557.1094 Q1030.3125,559.2031 1031,560.2813 Q1031.6875,561.3438 1033.0313,561.3438 Q1033.6563,561.3438 1034.25,561.0781 Q1034.8438,560.7969 1035.4688,560.2188 L1035.4688,562.9375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="178.6641" x="1046.5" y="562.1436">TiggerCommandExecutor</text><line style="stroke:#181818;stroke-width:0.5;" x1="1018.5" x2="1227.1641" y1="573.2969" y2="573.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="1018.5" x2="1227.1641" y1="581.2969" y2="581.2969"/></g><!--class AbortCommandExecutor--><g id="elem_AbortCommandExecutor"><rect codeLine="21" fill="#F1F1F1" height="48" id="AbortCommandExecutor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="204.3545" x="1264" y="541.2969"/><ellipse cx="1279" cy="557.2969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1281.9688,562.9375 Q1281.3906,563.2344 1280.75,563.375 Q1280.1094,563.5313 1279.4063,563.5313 Q1276.9063,563.5313 1275.5781,561.8906 Q1274.2656,560.2344 1274.2656,557.1094 Q1274.2656,553.9844 1275.5781,552.3281 Q1276.9063,550.6719 1279.4063,550.6719 Q1280.1094,550.6719 1280.75,550.8281 Q1281.4063,550.9844 1281.9688,551.2813 L1281.9688,554 Q1281.3438,553.4219 1280.75,553.1563 Q1280.1563,552.875 1279.5313,552.875 Q1278.1875,552.875 1277.5,553.9531 Q1276.8125,555.0156 1276.8125,557.1094 Q1276.8125,559.2031 1277.5,560.2813 Q1278.1875,561.3438 1279.5313,561.3438 Q1280.1563,561.3438 1280.75,561.0781 Q1281.3438,560.7969 1281.9688,560.2188 L1281.9688,562.9375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="172.3545" x="1293" y="562.1436">AbortCommandExecutor</text><line style="stroke:#181818;stroke-width:0.5;" x1="1265" x2="1467.3545" y1="573.2969" y2="573.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="1265" x2="1467.3545" y1="581.2969" y2="581.2969"/></g><!--class IJobDispatcher--><g id="elem_IJobDispatcher"><rect codeLine="24" fill="#F1F1F1" height="162.0781" id="IJobDispatcher" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="203.6113" x="894" y="649.2969"/><ellipse cx="940.7715" cy="665.2969" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M936.6934,661.0625 L936.6934,658.9063 L944.084,658.9063 L944.084,661.0625 L941.6152,661.0625 L941.6152,669.1406 L944.084,669.1406 L944.084,671.2969 L936.6934,671.2969 L936.6934,669.1406 L939.1621,669.1406 L939.1621,661.0625 L936.6934,661.0625 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="101.5684" x="961.2715" y="670.1436">IJobDispatcher</text><line style="stroke:#181818;stroke-width:0.5;" x1="895" x2="1096.6113" y1="681.2969" y2="681.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="895" x2="1096.6113" y1="689.2969" y2="689.2969"/><ellipse cx="905" cy="702.9453" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86.8506" x="914" y="706.292">StartAsync()</text><ellipse cx="905" cy="719.2422" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.4785" x="914" y="722.5889">StopAsync()</text><ellipse cx="905" cy="735.5391" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="107.9736" x="914" y="738.8857">DisposeAsync()</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="4.4502" x="914" y="755.1826">&#160;</text><ellipse cx="905" cy="768.1328" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="148.9551" x="914" y="771.4795">AddJobAsync(Job job)</text><ellipse cx="905" cy="784.4297" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="177.6113" x="914" y="787.7764">ReplaceJobAsync(Job job)</text><ellipse cx="905" cy="800.7266" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="169.5654" x="914" y="804.0732">AbortJobAsync(int jobId)</text></g><!--class JobDispatcher--><g id="elem_JobDispatcher"><rect codeLine="33" fill="#F1F1F1" height="80.5938" id="JobDispatcher" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="212.8945" x="889.5" y="871.2969"/><ellipse cx="942.9775" cy="887.2969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M945.9463,892.9375 Q945.3682,893.2344 944.7275,893.375 Q944.0869,893.5313 943.3838,893.5313 Q940.8838,893.5313 939.5557,891.8906 Q938.2432,890.2344 938.2432,887.1094 Q938.2432,883.9844 939.5557,882.3281 Q940.8838,880.6719 943.3838,880.6719 Q944.0869,880.6719 944.7275,880.8281 Q945.3838,880.9844 945.9463,881.2813 L945.9463,884 Q945.3213,883.4219 944.7275,883.1563 Q944.1338,882.875 943.5088,882.875 Q942.165,882.875 941.4775,883.9531 Q940.79,885.0156 940.79,887.1094 Q940.79,889.2031 941.4775,890.2813 Q942.165,891.3438 943.5088,891.3438 Q944.1338,891.3438 944.7275,891.0781 Q945.3213,890.7969 945.9463,890.2188 L945.9463,892.9375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="97.4395" x="963.4775" y="892.1436">JobDispatcher</text><line style="stroke:#181818;stroke-width:0.5;" x1="890.5" x2="1101.3945" y1="903.2969" y2="903.2969"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="897.5" y="913.9453"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="146.3574" x="909.5" y="920.292">JobQueue _jobQueue</text><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="897.5" y="930.2422"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="186.8945" x="909.5" y="936.5889">CallQueue _callbackQueue</text><line style="stroke:#181818;stroke-width:0.5;" x1="890.5" x2="1101.3945" y1="943.8906" y2="943.8906"/></g><!--class IJobExecutorFactory--><g id="elem_IJobExecutorFactory"><rect codeLine="38" fill="#F1F1F1" height="64.2969" id="IJobExecutorFactory" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="265.7705" x="722" y="1283.2969"/><ellipse cx="780.5054" cy="1299.2969" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M776.4272,1295.0625 L776.4272,1292.9063 L783.8179,1292.9063 L783.8179,1295.0625 L781.3491,1295.0625 L781.3491,1303.1406 L783.8179,1303.1406 L783.8179,1305.2969 L776.4272,1305.2969 L776.4272,1303.1406 L778.896,1303.1406 L778.896,1295.0625 L776.4272,1295.0625 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="140.2598" x="801.0054" y="1304.1436">IJobExecutorFactory</text><line style="stroke:#181818;stroke-width:0.5;" x1="723" x2="986.7705" y1="1315.2969" y2="1315.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="723" x2="986.7705" y1="1323.2969" y2="1323.2969"/><ellipse cx="733" cy="1336.9453" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="239.7705" x="742" y="1340.292">GetTaskExecutor(string glueType)</text></g><!--class JobExecutorFactory--><g id="elem_JobExecutorFactory"><rect codeLine="41" fill="#F1F1F1" height="48" id="JobExecutorFactory" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="168.1309" x="771" y="1423.7969"/><ellipse cx="786" cy="1439.7969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M788.9688,1445.4375 Q788.3906,1445.7344 787.75,1445.875 Q787.1094,1446.0313 786.4063,1446.0313 Q783.9063,1446.0313 782.5781,1444.3906 Q781.2656,1442.7344 781.2656,1439.6094 Q781.2656,1436.4844 782.5781,1434.8281 Q783.9063,1433.1719 786.4063,1433.1719 Q787.1094,1433.1719 787.75,1433.3281 Q788.4063,1433.4844 788.9688,1433.7813 L788.9688,1436.5 Q788.3438,1435.9219 787.75,1435.6563 Q787.1563,1435.375 786.5313,1435.375 Q785.1875,1435.375 784.5,1436.4531 Q783.8125,1437.5156 783.8125,1439.6094 Q783.8125,1441.7031 784.5,1442.7813 Q785.1875,1443.8438 786.5313,1443.8438 Q787.1563,1443.8438 787.75,1443.5781 Q788.3438,1443.2969 788.9688,1442.7188 L788.9688,1445.4375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="136.1309" x="800" y="1444.6436">JobExecutorFactory</text><line style="stroke:#181818;stroke-width:0.5;" x1="772" x2="938.1309" y1="1455.7969" y2="1455.7969"/><line style="stroke:#181818;stroke-width:0.5;" x1="772" x2="938.1309" y1="1463.7969" y2="1463.7969"/></g><!--class IJobExecutor--><g id="elem_IJobExecutor"><rect codeLine="43" fill="#F1F1F1" height="80.5938" id="IJobExecutor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="182.4404" x="554" y="1407.2969"/><ellipse cx="597.1725" cy="1423.2969" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M593.0943,1419.0625 L593.0943,1416.9063 L600.485,1416.9063 L600.485,1419.0625 L598.0162,1419.0625 L598.0162,1427.1406 L600.485,1427.1406 L600.485,1429.2969 L593.0943,1429.2969 L593.0943,1427.1406 L595.5631,1427.1406 L595.5631,1419.0625 L593.0943,1419.0625 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="87.835" x="617.433" y="1428.1436">IJobExecutor</text><line style="stroke:#181818;stroke-width:0.5;" x1="555" x2="735.4404" y1="1439.2969" y2="1439.2969"/><ellipse cx="565" cy="1452.9453" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="111.2002" x="574" y="1456.292">string GlueType</text><line style="stroke:#181818;stroke-width:0.5;" x1="555" x2="735.4404" y1="1463.5938" y2="1463.5938"/><ellipse cx="565" cy="1477.2422" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="156.4404" x="574" y="1480.5889">ExecuteAsync(Job job)</text></g><!--class BeanJobExecutor--><g id="elem_BeanJobExecutor"><rect codeLine="48" fill="#F1F1F1" height="48" id="BeanJobExecutor" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="151.376" x="367.5" y="1423.7969"/><ellipse cx="382.5" cy="1439.7969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M385.4688,1445.4375 Q384.8906,1445.7344 384.25,1445.875 Q383.6094,1446.0313 382.9063,1446.0313 Q380.4063,1446.0313 379.0781,1444.3906 Q377.7656,1442.7344 377.7656,1439.6094 Q377.7656,1436.4844 379.0781,1434.8281 Q380.4063,1433.1719 382.9063,1433.1719 Q383.6094,1433.1719 384.25,1433.3281 Q384.9063,1433.4844 385.4688,1433.7813 L385.4688,1436.5 Q384.8438,1435.9219 384.25,1435.6563 Q383.6563,1435.375 383.0313,1435.375 Q381.6875,1435.375 381,1436.4531 Q380.3125,1437.5156 380.3125,1439.6094 Q380.3125,1441.7031 381,1442.7813 Q381.6875,1443.8438 383.0313,1443.8438 Q383.6563,1443.8438 384.25,1443.5781 Q384.8438,1443.2969 385.4688,1442.7188 L385.4688,1445.4375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="119.376" x="396.5" y="1444.6436">BeanJobExecutor</text><line style="stroke:#181818;stroke-width:0.5;" x1="368.5" x2="517.876" y1="1455.7969" y2="1455.7969"/><line style="stroke:#181818;stroke-width:0.5;" x1="368.5" x2="517.876" y1="1463.7969" y2="1463.7969"/></g><!--class IJobHandlerFactory--><g id="elem_IJobHandlerFactory"><rect codeLine="52" fill="#F1F1F1" height="64.2969" id="IJobHandlerFactory" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="277.9932" x="304" y="1556.7969"/><ellipse cx="372.1167" cy="1572.7969" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M368.0386,1568.5625 L368.0386,1566.4063 L375.4292,1566.4063 L375.4292,1568.5625 L372.9604,1568.5625 L372.9604,1576.6406 L375.4292,1576.6406 L375.4292,1578.7969 L368.0386,1578.7969 L368.0386,1576.6406 L370.5073,1576.6406 L370.5073,1568.5625 L368.0386,1568.5625 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="133.2598" x="392.6167" y="1577.6436">IJobHandlerFactory</text><line style="stroke:#181818;stroke-width:0.5;" x1="305" x2="580.9932" y1="1588.7969" y2="1588.7969"/><line style="stroke:#181818;stroke-width:0.5;" x1="305" x2="580.9932" y1="1596.7969" y2="1596.7969"/><ellipse cx="315" cy="1610.4453" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="251.9932" x="324" y="1613.792">GetJobHandler(string handlerName)</text></g><!--class JobHandlerFactory--><g id="elem_JobHandlerFactory"><rect codeLine="56" fill="#F1F1F1" height="48" id="JobHandlerFactory" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="161.1309" x="209.5" y="1689.2969"/><ellipse cx="224.5" cy="1705.2969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M227.4688,1710.9375 Q226.8906,1711.2344 226.25,1711.375 Q225.6094,1711.5313 224.9063,1711.5313 Q222.4063,1711.5313 221.0781,1709.8906 Q219.7656,1708.2344 219.7656,1705.1094 Q219.7656,1701.9844 221.0781,1700.3281 Q222.4063,1698.6719 224.9063,1698.6719 Q225.6094,1698.6719 226.25,1698.8281 Q226.9063,1698.9844 227.4688,1699.2813 L227.4688,1702 Q226.8438,1701.4219 226.25,1701.1563 Q225.6563,1700.875 225.0313,1700.875 Q223.6875,1700.875 223,1701.9531 Q222.3125,1703.0156 222.3125,1705.1094 Q222.3125,1707.2031 223,1708.2813 Q223.6875,1709.3438 225.0313,1709.3438 Q225.6563,1709.3438 226.25,1709.0781 Q226.8438,1708.7969 227.4688,1708.2188 L227.4688,1710.9375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="129.1309" x="238.5" y="1710.1436">JobHandlerFactory</text><line style="stroke:#181818;stroke-width:0.5;" x1="210.5" x2="369.6309" y1="1721.2969" y2="1721.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="210.5" x2="369.6309" y1="1729.2969" y2="1729.2969"/></g><!--class IJobHandler--><g id="elem_IJobHandler"><rect codeLine="60" fill="#F1F1F1" height="80.5938" id="IJobHandler" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="262.1543" x="7" y="1548.2969"/><ellipse cx="93.4097" cy="1564.2969" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M89.3315,1560.0625 L89.3315,1557.9063 L96.7222,1557.9063 L96.7222,1560.0625 L94.2534,1560.0625 L94.2534,1568.1406 L96.7222,1568.1406 L96.7222,1570.2969 L89.3315,1570.2969 L89.3315,1568.1406 L91.8003,1568.1406 L91.8003,1560.0625 L89.3315,1560.0625 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="80.835" x="113.9097" y="1569.1436">IJobHandler</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="268.1543" y1="1580.2969" y2="1580.2969"/><ellipse cx="18" cy="1593.9453" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="85.9414" x="27" y="1597.292">string Name</text><line style="stroke:#181818;stroke-width:0.5;" x1="8" x2="268.1543" y1="1604.5938" y2="1604.5938"/><ellipse cx="18" cy="1618.2422" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="236.1543" x="27" y="1621.5889">HandleAsync(JobContext context)</text></g><!--class JobWorker--><g id="elem_JobWorker"><rect codeLine="65" fill="#F1F1F1" height="210.9688" id="JobWorker" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="188.3877" x="761" y="1012.2969"/><ellipse cx="814.833" cy="1028.2969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M817.8018,1033.9375 Q817.2236,1034.2344 816.583,1034.375 Q815.9424,1034.5313 815.2393,1034.5313 Q812.7393,1034.5313 811.4111,1032.8906 Q810.0986,1031.2344 810.0986,1028.1094 Q810.0986,1024.9844 811.4111,1023.3281 Q812.7393,1021.6719 815.2393,1021.6719 Q815.9424,1021.6719 816.583,1021.8281 Q817.2393,1021.9844 817.8018,1022.2813 L817.8018,1025 Q817.1768,1024.4219 816.583,1024.1563 Q815.9893,1023.875 815.3643,1023.875 Q814.0205,1023.875 813.333,1024.9531 Q812.6455,1026.0156 812.6455,1028.1094 Q812.6455,1030.2031 813.333,1031.2813 Q814.0205,1032.3438 815.3643,1032.3438 Q815.9893,1032.3438 816.583,1032.0781 Q817.1768,1031.7969 817.8018,1031.2188 L817.8018,1033.9375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="72.2217" x="835.333" y="1033.1436">JobWorker</text><line style="stroke:#181818;stroke-width:0.5;" x1="762" x2="948.3877" y1="1044.2969" y2="1044.2969"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="769" y="1054.9453"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="124.7764" x="781" y="1061.292">Queue _jobQueue</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="4.4502" x="781" y="1077.5889">&#160;</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="4.4502" x="781" y="1093.8857">&#160;</text><ellipse cx="772" cy="1106.8359" fill="none" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="162.3877" x="781" y="1110.1826">Event OnJobCompleted</text><line style="stroke:#181818;stroke-width:0.5;" x1="762" x2="948.3877" y1="1117.4844" y2="1117.4844"/><ellipse cx="772" cy="1131.1328" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86.8506" x="781" y="1134.4795">StartAsync()</text><ellipse cx="772" cy="1147.4297" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.4785" x="781" y="1150.7764">StopAsync()</text><ellipse cx="772" cy="1163.7266" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="107.9736" x="781" y="1167.0732">DisposeAsync()</text><ellipse cx="772" cy="1180.0234" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="161.6016" x="781" y="1183.3701">EnqueueAsync(Job job)</text><ellipse cx="772" cy="1196.3203" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="156.0303" x="781" y="1199.667">ReplaceAsync(Job job)</text><ellipse cx="772" cy="1212.6172" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="147.9844" x="781" y="1215.9639">AbortAsync(int jobId)</text></g><!--class JobExecuteResult--><g id="elem_JobExecuteResult"><rect codeLine="79" fill="#F1F1F1" height="48" id="JobExecuteResult" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="153.8848" x="1167" y="52.2969"/><ellipse cx="1182" cy="68.2969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1184.9688,73.9375 Q1184.3906,74.2344 1183.75,74.375 Q1183.1094,74.5313 1182.4063,74.5313 Q1179.9063,74.5313 1178.5781,72.8906 Q1177.2656,71.2344 1177.2656,68.1094 Q1177.2656,64.9844 1178.5781,63.3281 Q1179.9063,61.6719 1182.4063,61.6719 Q1183.1094,61.6719 1183.75,61.8281 Q1184.4063,61.9844 1184.9688,62.2813 L1184.9688,65 Q1184.3438,64.4219 1183.75,64.1563 Q1183.1563,63.875 1182.5313,63.875 Q1181.1875,63.875 1180.5,64.9531 Q1179.8125,66.0156 1179.8125,68.1094 Q1179.8125,70.2031 1180.5,71.2813 Q1181.1875,72.3438 1182.5313,72.3438 Q1183.1563,72.3438 1183.75,72.0781 Q1184.3438,71.7969 1184.9688,71.2188 L1184.9688,73.9375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="121.8848" x="1196" y="73.1436">JobExecuteResult</text><line style="stroke:#181818;stroke-width:0.5;" x1="1168" x2="1319.8848" y1="84.2969" y2="84.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="1168" x2="1319.8848" y1="92.2969" y2="92.2969"/></g><!--class CallBackWorker--><g id="elem_CallBackWorker"><rect codeLine="80" fill="#F1F1F1" height="145.7813" id="CallBackWorker" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="306.4785" x="984" y="1044.7969"/><ellipse cx="1077.6079" cy="1060.7969" fill="#ADD1B2" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1080.5767,1066.4375 Q1079.9985,1066.7344 1079.3579,1066.875 Q1078.7173,1067.0313 1078.0142,1067.0313 Q1075.5142,1067.0313 1074.186,1065.3906 Q1072.8735,1063.7344 1072.8735,1060.6094 Q1072.8735,1057.4844 1074.186,1055.8281 Q1075.5142,1054.1719 1078.0142,1054.1719 Q1078.7173,1054.1719 1079.3579,1054.3281 Q1080.0142,1054.4844 1080.5767,1054.7813 L1080.5767,1057.5 Q1079.9517,1056.9219 1079.3579,1056.6563 Q1078.7642,1056.375 1078.1392,1056.375 Q1076.7954,1056.375 1076.1079,1057.4531 Q1075.4204,1058.5156 1075.4204,1060.6094 Q1075.4204,1062.7031 1076.1079,1063.7813 Q1076.7954,1064.8438 1078.1392,1064.8438 Q1078.7642,1064.8438 1079.3579,1064.5781 Q1079.9517,1064.2969 1080.5767,1063.7188 L1080.5767,1066.4375 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="110.7627" x="1098.1079" y="1065.6436">CallBackWorker</text><line style="stroke:#181818;stroke-width:0.5;" x1="985" x2="1289.4785" y1="1076.7969" y2="1076.7969"/><rect fill="none" height="6" style="stroke:#C82930;stroke-width:1;" width="6" x="992" y="1087.4453"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="160.7607" x="1004" y="1093.792">Queue _callbackQueue</text><line style="stroke:#181818;stroke-width:0.5;" x1="985" x2="1289.4785" y1="1101.0938" y2="1101.0938"/><ellipse cx="995" cy="1114.7422" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="86.8506" x="1004" y="1118.0889">StartAsync()</text><ellipse cx="995" cy="1131.0391" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="84.4785" x="1004" y="1134.3857">StopAsync()</text><ellipse cx="995" cy="1147.3359" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="107.9736" x="1004" y="1150.6826">DisposeAsync()</text><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="4.4502" x="1004" y="1166.9795">&#160;</text><ellipse cx="995" cy="1179.9297" fill="#84BE84" rx="3" ry="3" style="stroke:#038048;stroke-width:1;"/><text fill="#000000" font-family="sans-serif" font-size="14" lengthAdjust="spacing" textLength="280.4785" x="1004" y="1183.2764">EnqueueAsync(JobExecuteResult result)</text></g><!--class IAdminClient--><g id="elem_IAdminClient"><rect codeLine="90" fill="#F1F1F1" height="48" id="IAdminClient" rx="2.5" ry="2.5" style="stroke:#181818;stroke-width:0.5;" width="121.5234" x="1076" y="1291.2969"/><ellipse cx="1091" cy="1307.2969" fill="#B4A7E5" rx="11" ry="11" style="stroke:#181818;stroke-width:1;"/><path d="M1086.9219,1303.0625 L1086.9219,1300.9063 L1094.3125,1300.9063 L1094.3125,1303.0625 L1091.8438,1303.0625 L1091.8438,1311.1406 L1094.3125,1311.1406 L1094.3125,1313.2969 L1086.9219,1313.2969 L1086.9219,1311.1406 L1089.3906,1311.1406 L1089.3906,1303.0625 L1086.9219,1303.0625 Z " fill="#000000"/><text fill="#000000" font-family="sans-serif" font-size="14" font-style="italic" lengthAdjust="spacing" textLength="89.5234" x="1105" y="1312.1436">IAdminClient</text><line style="stroke:#181818;stroke-width:0.5;" x1="1077" x2="1196.5234" y1="1323.2969" y2="1323.2969"/><line style="stroke:#181818;stroke-width:0.5;" x1="1077" x2="1196.5234" y1="1331.2969" y2="1331.2969"/></g><!--link XxlJobHttpHandler to ICommandExecutorFactory--><g id="link_XxlJobHttpHandler_ICommandExecutorFactory"><path codeLine="92" d="M996,108.3969 C996,126.7569 996,143.9069 996,162.2569 " fill="none" id="XxlJobHttpHandler-to-ICommandExecutorFactory" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="996,168.2569,1000,159.2569,996,163.2569,992,159.2569,996,168.2569" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link ICommandExecutorFactory to CommandExecutorFactory--><g id="link_ICommandExecutorFactory_CommandExecutorFactory"><path codeLine="94" d="M996,250.4469 C996,269.3069 996,274.9469 996,292.1369 " fill="none" id="ICommandExecutorFactory-backto-CommandExecutorFactory" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="996,232.4469,990,250.4469,1002,250.4469,996,232.4469" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link ICommandExecutor to BeatCommandExecutor--><g id="link_ICommandExecutor_BeatCommandExecutor"><path codeLine="96" d="M860.1729,486.5261 C799.7929,506.4061 745.56,524.2669 694.02,541.2369 " fill="none" id="ICommandExecutor-backto-BeatCommandExecutor" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="877.27,480.8969,858.2965,480.827,862.0493,492.2251,877.27,480.8969" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link ICommandExecutor to IdleBeatCommandExecutor--><g id="link_ICommandExecutor_IdleBeatCommandExecutor"><path codeLine="97" d="M942.185,494.1152 C921.925,513.8152 911.07,524.3669 893.82,541.1369 " fill="none" id="ICommandExecutor-backto-IdleBeatCommandExecutor" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="955.09,481.5669,938.0022,489.8135,946.3677,498.4169,955.09,481.5669" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link ICommandExecutor to TiggerCommandExecutor--><g id="link_ICommandExecutor_TiggerCommandExecutor"><path codeLine="98" d="M1050.1873,494.0612 C1070.6173,513.7612 1081.6,524.3669 1098.99,541.1369 " fill="none" id="ICommandExecutor-backto-TiggerCommandExecutor" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="1037.23,481.5669,1046.0225,498.3803,1054.3521,489.7421,1037.23,481.5669" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link ICommandExecutor to AbortCommandExecutor--><g id="link_ICommandExecutor_AbortCommandExecutor"><path codeLine="99" d="M1131.6877,486.7247 C1191.6077,506.5647 1245.16,524.2869 1296.28,541.2169 " fill="none" id="ICommandExecutor-backto-AbortCommandExecutor" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="1114.6,481.0669,1129.8017,492.4206,1133.5736,481.0289,1114.6,481.0669" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link CommandExecutorFactory to ICommandExecutor--><g id="link_CommandExecutorFactory_ICommandExecutor"><path codeLine="101" d="M996,352.3369 C996,369.1069 996,380.2469 996,399.9869 " fill="none" id="CommandExecutorFactory-backto-ICommandExecutor" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="996,340.3369,992,346.3369,996,352.3369,1000,346.3369,996,340.3369" style="stroke:#181818;stroke-width:1;"/></g><!--link BeanJobExecutor to IJobExecutor--><g id="link_BeanJobExecutor_IJobExecutor"><path codeLine="103" d="M518.75,1447.7969 C530.42,1447.7969 524.09,1447.7969 535.76,1447.7969 " fill="none" id="BeanJobExecutor-to-IJobExecutor" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="553.76,1447.7969,535.76,1441.7969,535.76,1453.7969,553.76,1447.7969" style="stroke:#181818;stroke-width:1;"/></g><!--link IJobExecutor to JobExecutorFactory--><g id="link_IJobExecutor_JobExecutorFactory"><path codeLine="105" d="M736.05,1447.7969 C747.67,1447.7969 747.29,1447.7969 758.9,1447.7969 " fill="none" id="IJobExecutor-to-JobExecutorFactory" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="770.9,1447.7969,764.9,1443.7969,758.9,1447.7969,764.9,1451.7969,770.9,1447.7969" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link IJobDispatcher to JobDispatcher--><g id="link_IJobDispatcher_JobDispatcher"><path codeLine="107" d="M996,829.3369 C996,850.0869 996,853.5469 996,871.1969 " fill="none" id="IJobDispatcher-backto-JobDispatcher" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="996,811.3369,990,829.3369,1002,829.3369,996,811.3369" style="stroke:#181818;stroke-width:1;"/></g><!--link JobDispatcher to JobWorker--><g id="link_JobDispatcher_JobWorker"><path codeLine="109" d="M968.48,952.6169 C956.54,969.8869 945.3528,986.0821 930.6428,1007.3521 " fill="none" id="JobDispatcher-to-JobWorker" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="927.23,1012.2869,935.6392,1007.1599,930.074,1008.1745,929.0594,1002.6094,927.23,1012.2869" style="stroke:#181818;stroke-width:1;"/></g><!--link JobDispatcher to CallBackWorker--><g id="link_JobDispatcher_CallBackWorker"><path codeLine="110" d="M1023.52,952.6169 C1041.55,978.7069 1062.2386,1008.6311 1083.5886,1039.5211 " fill="none" id="JobDispatcher-to-CallBackWorker" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="1087,1044.4569,1085.1734,1034.7789,1084.1571,1040.3437,1078.5923,1039.3275,1087,1044.4569" style="stroke:#181818;stroke-width:1;"/></g><!--link JobWorker to IJobExecutorFactory--><g id="link_JobWorker_IJobExecutorFactory"><path codeLine="113" d="M855,1223.4169 C855,1245.2069 855,1260.5369 855,1277.0469 " fill="none" id="JobWorker-to-IJobExecutorFactory" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="855,1283.0469,859,1274.0469,855,1278.0469,851,1274.0469,855,1283.0469" style="stroke:#181818;stroke-width:1;"/></g><!--link CallBackWorker to IAdminClient--><g id="link_CallBackWorker_IAdminClient"><path codeLine="114" d="M1137,1191.0369 C1137,1226.2769 1137,1260.2769 1137,1284.8969 " fill="none" id="CallBackWorker-to-IAdminClient" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="1137,1290.8969,1141,1281.8969,1137,1285.8969,1133,1281.8969,1137,1290.8969" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link IJobExecutorFactory to JobExecutorFactory--><g id="link_IJobExecutorFactory_JobExecutorFactory"><path codeLine="116" d="M855,1365.5569 C855,1388.9269 855,1402.3769 855,1423.5569 " fill="none" id="IJobExecutorFactory-backto-JobExecutorFactory" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="855,1347.5569,849,1365.5569,861,1365.5569,855,1347.5569" style="stroke:#181818;stroke-width:1;"/></g><!--link BeatCommandExecutor to IJobDispatcher--><g id="link_BeatCommandExecutor_IJobDispatcher"><path codeLine="119" d="M676.51,589.3069 C732.79,613.9669 818.0342,651.3193 888.4542,682.1693 " fill="none" id="BeatCommandExecutor-to-IJobDispatcher" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="893.95,684.5769,887.3114,677.3016,889.3702,682.5705,884.1013,684.6293,893.95,684.5769" style="stroke:#181818;stroke-width:1;"/></g><!--link IdleBeatCommandExecutor to IJobDispatcher--><g id="link_IdleBeatCommandExecutor_IJobDispatcher"><path codeLine="120" d="M887.79,589.3069 C900,605.0969 913.3309,622.3495 930.2409,644.2295 " fill="none" id="IdleBeatCommandExecutor-to-IJobDispatcher" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="933.91,648.9769,931.5714,639.4097,930.8525,645.0207,925.2415,644.3018,933.91,648.9769" style="stroke:#181818;stroke-width:1;"/></g><!--link TiggerCommandExecutor to IJobDispatcher--><g id="link_TiggerCommandExecutor_IJobDispatcher"><path codeLine="121" d="M1105.07,589.3069 C1092.77,605.0969 1079.318,622.3641 1062.268,644.2441 " fill="none" id="TiggerCommandExecutor-to-IJobDispatcher" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="1058.58,648.9769,1067.2671,644.3364,1061.6533,645.0329,1060.9568,639.4191,1058.58,648.9769" style="stroke:#181818;stroke-width:1;"/></g><!--link AbortCommandExecutor to IJobDispatcher--><g id="link_AbortCommandExecutor_IJobDispatcher"><path codeLine="122" d="M1313.77,589.3069 C1258,613.8769 1173.6808,651.018 1103.7408,681.828 " fill="none" id="AbortCommandExecutor-to-IJobDispatcher" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="1098.25,684.2469,1108.0988,684.2792,1102.8257,682.2312,1104.8737,676.9581,1098.25,684.2469" style="stroke:#181818;stroke-width:1;"/></g><!--link BeanJobExecutor to IJobHandlerFactory--><g id="link_BeanJobExecutor_IJobHandlerFactory"><path codeLine="124" d="M443,1472.0669 C443,1495.2469 443,1524.9969 443,1550.6269 " fill="none" id="BeanJobExecutor-to-IJobHandlerFactory" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="443,1556.6269,447,1547.6269,443,1551.6269,439,1547.6269,443,1556.6269" style="stroke:#181818;stroke-width:1;"/></g><!--reverse link IJobHandlerFactory to JobHandlerFactory--><g id="link_IJobHandlerFactory_JobHandlerFactory"><path codeLine="125" d="M389.9475,1632.2753 C363.3875,1653.5353 342.86,1669.9769 318.79,1689.2469 " fill="none" id="IJobHandlerFactory-backto-JobHandlerFactory" style="stroke:#181818;stroke-width:1;"/><polygon fill="none" points="404,1621.0269,386.198,1627.5911,393.6969,1636.9594,404,1621.0269" style="stroke:#181818;stroke-width:1;"/></g><!--link IJobHandler to JobHandlerFactory--><g id="link_IJobHandler_JobHandlerFactory"><path codeLine="126" d="M187.35,1629.5669 C211.8,1649.2669 231.1046,1664.8394 251.9246,1681.6094 " fill="none" id="IJobHandler-to-JobHandlerFactory" style="stroke:#181818;stroke-width:1;stroke-dasharray:7.0,7.0;"/><polygon fill="#181818" points="261.27,1689.1369,259.1065,1682.258,251.9246,1681.6094,254.0881,1688.4883,261.27,1689.1369" style="stroke:#181818;stroke-width:1;"/></g><!--SRC=[dLHDRzim3BthL-ZOTh1_me3KxThiiA9TW0qOXa6sESUDR7coFCJeyjydIxQZpnnwIMJowP4K7obgGG5_FzBFB4ypnW4dEAEax_5TJIfE6eHGeRurvb68xf6q9GN-XZ3-WFN7fX_RucfoPgmLS1IuqF_Nw8HGBO_yDoa0RpFMDFB6_H6AGJ3-YHJoTzHK3o0SzrKlUDrMaaoPlv065A7EAC9rCQ2EDDDcPrfbrg2vc7mKyECdxiX86Icdi3hgBH0tpRV5jvLFSSc_gwiAUCoxoHaFNBNAaIsug_kEY6A_TE2h85pedAzd0-lCx-a2w-5iKjPDMKeoRPG7_Cfo3N-1ZifOOQVASNN9n2RNrdWUBy5aCZqFC03-zJgVb3aZbCxsGXvpKXoqy-HM75FBZlG7LoeL7M0tTc1bv16S8X4iUJpCLBusrYTPjIYxtbeyVj_ciN6BE7kM4lRwqr5xWC5_AMiqPxfLtkQeIcneKjTGtnW_BFrpc_SkrUb7_0jICK-jYjvq50IKYnxlspyJUroGCJLwKlGx3o_G3rIiapP9xrRgBL2bBSKvjtUEc5kIbGpcwizTa9kogTkCrlAXfjdtjYvEqu-nDOfGs8wJeKl-NRWMs5cnEoYouwBuuCwBeaCxC0f6hWMdGvVUu0jbcaEA4rvNUw6e3REaDK6f0abMVuyWP6sxDK_BweAc_gq35l3PsaJgkZvZtVj07lQT6MSeIP74H16gAwY89RfHMqmC0MXO1m5WK081dDVE1MElIUHPpCeTh66IT3V-qlqF]--></g></svg>