From 93a6e0d0573291cb11f6bc3ab49cbf78bd63ef3c Mon Sep 17 00:00:00 2001 From: cKey <35512826+colinin@users.noreply.github.com> Date: Wed, 12 Jan 2022 20:46:30 +0800 Subject: [PATCH] =?UTF-8?q?feat(tasks):=20=E5=A2=9E=E5=8A=A0=E5=A4=9A?= =?UTF-8?q?=E7=A7=9F=E6=88=B7=E6=94=AF=E6=8C=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/api/auditing/model/auditLogModel.ts | 2 +- .../api/task-management/backgroundJobInfo.ts | 67 ++++++ .../Permission/src/PermissionModal.vue | 50 ++--- .../Permission/src/hooks/usePermissions.ts | 12 +- .../Permission/src/types/permission.ts | 1 + .../components/Permission/src/utils/helper.ts | 3 +- apps/vue/src/store/modules/abp.ts | 1 - .../src/views/auditing/hooks/useAuditLog.ts | 4 +- .../components/BackgroundJobInfoTable.vue | 56 +++-- .../background-jobs/datas/TableData.ts | 6 +- .../LINGYUN/Abp/BackgroundTasks/JobInfo.cs | 39 ++++ ...INGYUN.Abp.BackgroundTasks.Hangfire.csproj | 19 ++ .../AbpBackgroundTasksHangfireModule.cs | 18 ++ .../Hangfire/HangfireJobExecutedAttribute.cs | 96 +++++++++ .../Hangfire/HangfireJobScheduler.cs | 122 +++++++++++ .../Hangfire/HangfireJobSimpleAdapter.cs | 32 +++ .../Quartz/QuartzJobExecutorProvider.cs | 36 +++- .../Quartz/QuartzJobScheduler.cs | 14 +- .../BackgroundTasks/BackgroundJobManager.cs | 5 + .../Internal/JobExecutedEvent.cs | 98 +++++---- .../BackgroundTasks/Internal/JobLogEvent.cs | 8 +- .../BackgroundJobInfoBatchInput.cs | 9 + .../IBackgroundJobInfoAppService.cs | 14 ++ ...kManagementPermissionDefinitionProvider.cs | 37 ++-- .../Permissions/TaskManagementPermissions.cs | 1 + .../BackgroundJobInfoAppService.cs | 92 +++++++- .../Localization/Resources/en.json | 8 +- .../Localization/Resources/zh-Hans.json | 8 +- .../Abp/TaskManagement/BackgroundJobInfo.cs | 8 +- .../Abp/TaskManagement/BackgroundJobLog.cs | 8 +- .../TaskManagement/BackgroundJobManager.cs | 47 ++++ .../Abp/TaskManagement/BackgroundJobStore.cs | 155 ++++++++------ .../EfCoreBackgroundJobInfoRepository.cs | 2 +- .../BackgroundJobInfoController.cs | 55 +++++ ...i-Tenancy-With-Background-Jobs.Designer.cs | 201 ++++++++++++++++++ ...port-Multi-Tenancy-With-Background-Jobs.cs | 38 ++++ ...agementMigrationsDbContextModelSnapshot.cs | 8 + 37 files changed, 1162 insertions(+), 218 deletions(-) create mode 100644 aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Hangfire/LINGYUN.Abp.BackgroundTasks.Hangfire.csproj create mode 100644 aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Hangfire/LINGYUN/Abp/BackgroundTasks/Hangfire/AbpBackgroundTasksHangfireModule.cs create mode 100644 aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Hangfire/LINGYUN/Abp/BackgroundTasks/Hangfire/HangfireJobExecutedAttribute.cs create mode 100644 aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Hangfire/LINGYUN/Abp/BackgroundTasks/Hangfire/HangfireJobScheduler.cs create mode 100644 aspnet-core/modules/task-management/LINGYUN.Abp.BackgroundTasks.Hangfire/LINGYUN/Abp/BackgroundTasks/Hangfire/HangfireJobSimpleAdapter.cs create mode 100644 aspnet-core/modules/task-management/LINGYUN.Abp.TaskManagement.Application.Contracts/LINGYUN/Abp/TaskManagement/BackgroundJobInfoBatchInput.cs create mode 100644 aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/Migrations/20220112093435_Add-Support-Multi-Tenancy-With-Background-Jobs.Designer.cs create mode 100644 aspnet-core/services/LY.MicroService.TaskManagement.HttpApi.Host/Migrations/20220112093435_Add-Support-Multi-Tenancy-With-Background-Jobs.cs diff --git a/apps/vue/src/api/auditing/model/auditLogModel.ts b/apps/vue/src/api/auditing/model/auditLogModel.ts index ccd6182e9..2c0d2e78f 100644 --- a/apps/vue/src/api/auditing/model/auditLogModel.ts +++ b/apps/vue/src/api/auditing/model/auditLogModel.ts @@ -17,7 +17,7 @@ export interface PropertyChange { export interface EntityChange { id: string; changeTime?: Date; - changeType?: ChangeType; + changeType: ChangeType; entityTenantId?: string; entityId?: string; entityTypeFullName?: string; diff --git a/apps/vue/src/api/task-management/backgroundJobInfo.ts b/apps/vue/src/api/task-management/backgroundJobInfo.ts index 4dbb69242..3f0480c38 100644 --- a/apps/vue/src/api/task-management/backgroundJobInfo.ts +++ b/apps/vue/src/api/task-management/backgroundJobInfo.ts @@ -17,7 +17,14 @@ enum Api { Pause = '/api/task-management/background-jobs/{id}/pause', Resume = '/api/task-management/background-jobs/{id}/resume', Trigger = '/api/task-management/background-jobs/{id}/trigger', + Start = '/api/task-management/background-jobs/{id}/start', Stop = '/api/task-management/background-jobs/{id}/stop', + BulkPause = '/api/task-management/background-jobs/bulk-pause', + BulkResume = '/api/task-management/background-jobs/bulk-resume', + BulkTrigger = '/api/task-management/background-jobs/bulk-trigger', + BulkStart = '/api/task-management/background-jobs/bulk-start', + BulkStop = '/api/task-management/background-jobs/bulk-stop', + BulkDelete = '/api/task-management/background-jobs/bulk-delete', } export const getById = (id: string) => { @@ -71,8 +78,68 @@ export const trigger = (id: string) => { }); }; +export const start = (id: string) => { + return defAbpHttp.put({ + url: format(Api.Stop, { id: id }), + }); +}; + export const stop = (id: string) => { return defAbpHttp.put({ url: format(Api.Stop, { id: id }), }); }; + +export const bulkPause = (ids: string[]) => { + return defAbpHttp.put({ + url: Api.BulkPause, + data: { + jobIds: ids, + }, + }); +}; + +export const bulkResume = (ids: string[]) => { + return defAbpHttp.put({ + url: Api.BulkResume, + data: { + jobIds: ids, + }, + }); +}; + +export const bulkTrigger = (ids: string[]) => { + return defAbpHttp.put({ + url: Api.BulkTrigger, + data: { + jobIds: ids, + }, + }); +}; + +export const bulkStart = (ids: string[]) => { + return defAbpHttp.put({ + url: Api.BulkStart, + data: { + jobIds: ids, + }, + }); +}; + +export const bulkStop = (ids: string[]) => { + return defAbpHttp.put({ + url: Api.BulkStop, + data: { + jobIds: ids, + }, + }); +}; + +export const bulkDelete = (ids: string[]) => { + return defAbpHttp.put({ + url: Api.BulkDelete, + data: { + jobIds: ids, + }, + }); +}; diff --git a/apps/vue/src/components/Permission/src/PermissionModal.vue b/apps/vue/src/components/Permission/src/PermissionModal.vue index 458c7d62f..44d3fd3d1 100644 --- a/apps/vue/src/components/Permission/src/PermissionModal.vue +++ b/apps/vue/src/components/Permission/src/PermissionModal.vue @@ -6,6 +6,7 @@ :width="800" :min-height="600" @ok="handleSubmit" + @visible-change="handleVisibleChange" > @@ -35,7 +36,6 @@ @@ -76,13 +84,14 @@