|
|
|
|
@ -156,6 +156,78 @@ public class DemoJobHandler:AbstractJobHandler |
|
|
|
|
} |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
``` |
|
|
|
|
classDiagram |
|
|
|
|
|
|
|
|
|
class IJobHandler { |
|
|
|
|
<<interface>> |
|
|
|
|
+Execute(JobExecuteContext) Task<ReturnT> |
|
|
|
|
+Init() |
|
|
|
|
+Destroy() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class AbstractJobHandler { |
|
|
|
|
<<abstract>> |
|
|
|
|
+Execute(JobExecuteContext)* Task<ReturnT> |
|
|
|
|
+Init() |
|
|
|
|
+Destroy() |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class JobHandlerAttribute { |
|
|
|
|
+Name: string |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class XxlJobExecutorOptions { |
|
|
|
|
+AdminAddresses: string |
|
|
|
|
+AppName: string |
|
|
|
|
+SpecialBindAddress: string |
|
|
|
|
+Port: int |
|
|
|
|
+AutoRegistry: bool |
|
|
|
|
+AccessToken: string |
|
|
|
|
+LogPath: string |
|
|
|
|
+LogRetentionDays: int |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class JobExecuteContext { |
|
|
|
|
+JobId: int |
|
|
|
|
+JobParameter: string |
|
|
|
|
+ShardIndex: int |
|
|
|
|
+ShardTotal: int |
|
|
|
|
+JobLogger: IJobLogger |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class ReturnT { |
|
|
|
|
+Code: int |
|
|
|
|
+Msg: string |
|
|
|
|
+Content: object |
|
|
|
|
+SUCCESS: ReturnT |
|
|
|
|
+FAIL: ReturnT |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class XxlJobExecutorMiddleware { |
|
|
|
|
-IJobHandlerFactory _jobHandlerFactory |
|
|
|
|
+InvokeAsync(HttpContext) |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class IJobHandlerFactory { |
|
|
|
|
<<interface>> |
|
|
|
|
+GetJobHandler(string) IJobHandler |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
class DefaultJobHandlerFactory { |
|
|
|
|
-IServiceProvider _serviceProvider |
|
|
|
|
+GetJobHandler(string) IJobHandler |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
IJobHandler <|.. AbstractJobHandler |
|
|
|
|
AbstractJobHandler <|-- DemoJobHandler |
|
|
|
|
IJobHandler -- JobHandlerAttribute |
|
|
|
|
IJobHandlerFactory <|.. DefaultJobHandlerFactory |
|
|
|
|
XxlJobExecutorMiddleware --> IJobHandlerFactory |
|
|
|
|
IJobHandler --> JobExecuteContext |
|
|
|
|
IJobHandler --> ReturnT |
|
|
|
|
``` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
## 其他说明 |
|
|
|
|
注意XXL-JOB 2.0.1版本请使用 1.0.8的执行器实现 |
|
|
|
|
|