这是基于vue-vben-admin 模板适用于abp vNext的前端管理项目
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.
 
 
 
 
 
 

10 KiB

任务执行监控

**本文档引用的文件** - [BackgroundJobInfo.cs](file://aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobInfo.cs) - [BackgroundJobLog.cs](file://aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobLog.cs) - [BackgroundJobManager.cs](file://aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Domain/LINGYUN/Abp/TaskManagement/BackgroundJobManager.cs) - [BackgroundJobInfoAppService.cs](file://aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Application/LINGYUN/Abp/TaskManagement/BackgroundJobInfoAppService.cs) - [BackgroundJobLogAppService.cs](file://aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Application/LINGYUN/Abp/TaskManagement/BackgroundJobLogAppService.cs) - [JobStatus.cs](file://aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Abstractions/LINGYUN/Abp/BackgroundTasks/JobStatus.cs) - [TaskManagementDbContextModelCreatingExtensions.cs](file://aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.EntityFrameworkCore/LINGYUN/Abp/TaskManagement/EntityFrameworkCore/TaskManagementDbContextModelCreatingExtensions.cs)

目录

  1. 项目结构
  2. 核心组件
  3. 架构概述
  4. 详细组件分析
  5. 依赖分析

项目结构

该任务执行监控系统是ABP框架中的一个模块,主要位于aspnet-core/modules/task-management目录下。系统由多个子模块组成,包括领域层、应用服务层和HTTP API层。

graph TD
subgraph "任务管理模块"
Domain[领域层]
Application[应用服务层]
HttpApi[HTTP API层]
EntityFrameworkCore[EF Core数据访问层]
end
Domain --> Application
Application --> HttpApi
EntityFrameworkCore --> Domain

图示来源

  • BackgroundJobInfo.cs
  • BackgroundJobInfoAppService.cs

章节来源

  • BackgroundJobInfo.cs

核心组件

任务执行监控系统的核心组件包括任务信息实体(BackgroundJobInfo)、任务日志实体(BackgroundJobLog)、任务管理器(BackgroundJobManager)以及相应的应用服务。这些组件共同实现了任务的创建、执行、监控和日志记录功能。

章节来源

  • BackgroundJobInfo.cs
  • BackgroundJobLog.cs

架构概述

任务执行监控系统采用分层架构设计,主要包括数据存储层、领域层、应用服务层和API接口层。系统通过事件总线实现各组件间的解耦通信,确保了系统的可扩展性和可维护性。

graph TB
subgraph "前端界面"
UI[管理界面]
end
subgraph "后端服务"
API[HTTP API]
Application[应用服务]
Domain[领域模型]
Data[数据存储]
end
UI --> API
API --> Application
Application --> Domain
Domain --> Data
EventBus[(事件总线)] --> Application
EventBus --> Domain

图示来源

  • BackgroundJobManager.cs
  • BackgroundJobInfoAppService.cs

详细组件分析

任务信息实体分析

任务信息实体(BackgroundJobInfo)是任务执行监控的核心数据模型,包含了任务的各种属性和状态信息。

类图

classDiagram
class BackgroundJobInfo {
+string Name
+string Group
+string Type
+string Result
+ExtraPropertyDictionary Args
+JobStatus Status
+bool IsEnabled
+string Description
+int LockTimeOut
+DateTime BeginTime
+DateTime? EndTime
+DateTime? LastRunTime
+DateTime? NextRunTime
+JobType JobType
+string Cron
+JobSource Source
+JobPriority Priority
+int TriggerCount
+int TryCount
+int MaxTryCount
+int MaxCount
+int Interval
+bool IsAbandoned
+string NodeName
+SetPeriodJob(cron)
+SetOnceJob(interval)
+SetPersistentJob(interval)
+SetLastRunTime(lastRunTime)
+SetNextRunTime(nextRunTime)
+SetResult(result)
+SetStatus(status)
+SetPriority(priority)
}
class JobStatus {
<<enumeration>>
None = -1
Completed = 0
Queuing = 5
Running = 10
FailedRetry = 15
Paused = 20
Stopped = 30
}
class JobType {
<<enumeration>>
Once
Persistent
Period
}
class JobSource {
<<enumeration>>
None
User
System
}
class JobPriority {
<<enumeration>>
Low
Normal
High
}
BackgroundJobInfo --> JobStatus : "包含"
BackgroundJobInfo --> JobType : "包含"
BackgroundJobInfo --> JobSource : "包含"
BackgroundJobInfo --> JobPriority : "包含"

图示来源

  • BackgroundJobInfo.cs
  • JobStatus.cs

章节来源

  • BackgroundJobInfo.cs

任务日志实体分析

任务日志实体(BackgroundJobLog)用于记录任务执行过程中的详细信息,包括执行时间、消息和异常等。

类图

classDiagram
class BackgroundJobLog {
+Guid? TenantId
+string JobId
+string JobName
+string JobGroup
+string JobType
+string Message
+DateTime RunTime
+string Exception
+SetMessage(message, ex)
}
BackgroundJobInfo "1" -- "0..*" BackgroundJobLog : "生成"

图示来源

  • BackgroundJobLog.cs
  • BackgroundJobInfo.cs

章节来源

  • BackgroundJobLog.cs

任务管理器分析

任务管理器(BackgroundJobManager)负责处理任务的生命周期管理,包括创建、更新、删除、启动、暂停等操作。

序列图

sequenceDiagram
participant Client as "客户端"
participant AppService as "应用服务"
participant Manager as "任务管理器"
participant Repository as "仓储"
participant EventBus as "事件总线"
Client->>AppService : 创建任务请求
AppService->>Manager : CreateAsync(jobInfo)
Manager->>Repository : InsertAsync(jobInfo)
Repository-->>Manager : 返回结果
Manager-->>AppService : 返回任务信息
AppService-->>Client : 返回响应
Client->>AppService : 启动任务请求
AppService->>Manager : QueueAsync(jobInfo)
Manager->>EventBus : Publish JobStartEventData
EventBus-->>Manager : 发布完成
Manager-->>AppService : 返回结果
AppService-->>Client : 返回响应

图示来源

  • BackgroundJobManager.cs
  • BackgroundJobInfoAppService.cs

章节来源

  • BackgroundJobManager.cs

应用服务分析

应用服务层提供了任务管理和日志查询的API接口,实现了业务逻辑与数据访问的分离。

序列图

sequenceDiagram
participant Client as "客户端"
participant Controller as "API控制器"
participant AppService as "应用服务"
participant Repository as "仓储"
Client->>Controller : GET /api/task-management/jobs/{id}
Controller->>AppService : GetAsync(id)
AppService->>Repository : GetAsync(id)
Repository-->>AppService : 返回任务信息
AppService-->>Controller : 返回DTO
Controller-->>Client : 返回JSON响应
Client->>Controller : GET /api/task-management/job-logs
Controller->>AppService : GetListAsync(input)
AppService->>Repository : GetListAsync(specification)
Repository-->>AppService : 返回日志列表
AppService-->>Controller : 返回分页结果
Controller-->>Client : 返回JSON响应

图示来源

  • BackgroundJobInfoAppService.cs
  • BackgroundJobLogAppService.cs

章节来源

  • BackgroundJobInfoAppService.cs

依赖分析

任务执行监控系统与其他模块存在明确的依赖关系,通过事件总线实现松耦合的通信机制。

graph TD
TaskManagement[任务管理模块] --> EventBus[分布式事件总线]
TaskManagement --> EFCore[Entity Framework Core]
TaskManagement --> AbpFramework[ABP框架基础组件]
TaskManagement --> Hangfire[后台作业调度]
TaskManagement --> Quartz[定时任务]
EventBus --> Notification[通知模块]
EventBus --> AuditLogging[审计日志]
EventBus --> Telemetry[遥测监控]

图示来源

  • BackgroundJobManager.cs
  • go.mod

章节来源

  • BackgroundJobManager.cs