From f8f66b1110c72baa6bf77166c21b78518f53613a Mon Sep 17 00:00:00 2001 From: he <109787524@qq.com> Date: Mon, 7 Jul 2025 14:31:45 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=9A=E6=97=B6=E4=BB=BB=E5=8A=A1=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../HostService/HangfireHostService.cs | 15 +++++++++++++++ .../_ServiceExtensions/hangfireSetup.cs | 3 ++- 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/IRaCIS.Core.API/HostService/HangfireHostService.cs b/IRaCIS.Core.API/HostService/HangfireHostService.cs index f1ede2c8b..478d883b9 100644 --- a/IRaCIS.Core.API/HostService/HangfireHostService.cs +++ b/IRaCIS.Core.API/HostService/HangfireHostService.cs @@ -41,6 +41,21 @@ public class HangfireHostService(IRecurringMessageScheduler _recurringMessageSch HangfireJobHelper.RemoveCronJob(jobId); } + // 清除所有可能存在的定时任务,防止类型加载错误 + var allJobIdList = JobStorage.Current.GetConnection().GetRecurringJobs().Select(t => t.Id).ToList(); + foreach (var jobId in allJobIdList) + { + try + { + HangfireJobHelper.RemoveCronJob(jobId); + _logger.LogInformation($"已清除定时任务: {jobId}"); + } + catch (Exception ex) + { + _logger.LogWarning($"清除定时任务 {jobId} 时出错: {ex.Message}"); + } + } + var taskInfoList = await _trialEmailNoticeConfigRepository.Where(t => t.Trial.TrialStatusStr == StaticData.TrialState.TrialOngoing && t.EmailCron != string.Empty && t.IsAutoSend) .Select(t => new { t.Id, t.Code, TrialCode = t.Trial.TrialCode, t.EmailCron, t.BusinessScenarioEnum, t.TrialId }) diff --git a/IRaCIS.Core.API/_ServiceExtensions/hangfireSetup.cs b/IRaCIS.Core.API/_ServiceExtensions/hangfireSetup.cs index 1e2eff9eb..bd5456482 100644 --- a/IRaCIS.Core.API/_ServiceExtensions/hangfireSetup.cs +++ b/IRaCIS.Core.API/_ServiceExtensions/hangfireSetup.cs @@ -27,7 +27,8 @@ namespace IRaCIS.Core.API hangFireConfig.UseSqlServerStorage(hangFireConnStr, new SqlServerStorageOptions() { SchemaName = "dbo", - }).UseRecommendedSerializerSettings().UseSimpleAssemblyNameTypeSerializer(); + }).UseRecommendedSerializerSettings(); + // 移除 UseSimpleAssemblyNameTypeSerializer() 以避免类型加载问题 }