This commit is contained in:
yxw
2025-12-12 16:18:27 +08:00
parent cd43abc7eb
commit 8a1ff0edf9
5 changed files with 88 additions and 33 deletions

View File

@@ -12,6 +12,7 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="Hangfire" Version="1.8.22" />
<PackageReference Include="Microsoft.Orleans.Server" Version="9.2.1" />
</ItemGroup>

View File

@@ -1,7 +1,5 @@
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Text;
using Hangfire;
using Microsoft.Extensions.Logging;
namespace Atomx.Core.Jos
{
@@ -9,7 +7,7 @@ namespace Atomx.Core.Jos
/// <summary>
/// 多语言本地化任务
/// </summary>
public partial class LocalizationJob
public class LocalizationJob
{
readonly ILogger<LocalizationJob> _logger;
public LocalizationJob(ILogger<LocalizationJob> logger)
@@ -17,10 +15,21 @@ namespace Atomx.Core.Jos
_logger = logger;
}
public void Execute()
/// <summary>
/// 如果任务失败,重试 3 次超过后删除任务60 秒内不允许并发执行
/// </summary>
[AutomaticRetry(Attempts = 3, OnAttemptsExceeded = AttemptsExceededAction.Delete)]
[DisableConcurrentExecution(60)]
public void Execute(string path)
{
_logger.LogInformation("LocalizationJob executed at: {time}", DateTimeOffset.Now);
// 在这里添加多语言本地化的具体任务逻辑
}
public void ResetCache()
{
_logger.LogInformation("LocalizationJob ResetCache executed at: {time}", DateTimeOffset.Now);
// 在这里添加重置缓存的具体逻辑
}
}
}

View File

@@ -0,0 +1,28 @@
using Atomx.Data;
using Atomx.Data.CacheServices;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Text;
namespace Atomx.Core.Jos
{
public class SendVerificationCodeJob
{
readonly ILogger<SendVerificationCodeJob> _logger;
readonly DataContext _dbContext;
readonly ICacheService _cacheService;
public SendVerificationCodeJob(ILogger<SendVerificationCodeJob> logger, DataContext dataContext, ICacheService cacheService)
{
_logger = logger;
_dbContext = dataContext;
_cacheService = cacheService;
}
public void Execute(string email, string code)
{
_logger.LogInformation("SendVerificationCodeJob executed at: {time}", DateTimeOffset.Now);
// 在这里添加发送验证码的具体任务逻辑
}
}
}

View File

@@ -1,4 +1,6 @@
using System;
using Hangfire;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Text;
@@ -6,9 +8,25 @@ namespace Atomx.Core.Jos
{
public partial interface IBackgroundJobsService
{
string SendSMSVerificationCode(string phoneNumber, string code, TimeSpan validDuration);
}
public partial class BackgroundJobsService : IBackgroundJobsService
{
readonly IBackgroundJobClient _backgroundJobClient;
readonly IRecurringJobManager _recurringJobManager;
readonly ILogger<BackgroundJobsService> _logger;
public BackgroundJobsService(IBackgroundJobClient backgroundJobClient, IRecurringJobManager recurringJobManager, ILogger<BackgroundJobsService> logger)
{
_backgroundJobClient = backgroundJobClient;
_recurringJobManager = recurringJobManager;
_logger = logger;
}
public string SendSMSVerificationCode(string phoneNumber, string code, TimeSpan validDuration)
{
return string.Empty;
}
}
}

View File

@@ -1,14 +1,13 @@
//namespace Atomx.Data.CacheServices
//{
// public partial interface ICacheService
// {
// Task SetLocalization(string id, LocalizationModel model);
namespace Atomx.Data.CacheServices
{
public partial interface ICacheService
{
Task LoadLocale(string Culture);
// LocalizationModel GetLocalization(string id);
// }
}
// public partial class CacheService : ICacheService
// {
public partial class CacheService : ICacheService
{
//public async Task SetLocalization(string id, LocalizationModel model)
//{
// var key = $"{CacheKeys.LocalizationPrefix}{id}";
@@ -25,6 +24,6 @@
// }
// return cacheData;
//}
// }
}
//}
}