S3MdpSyncTransformJob.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839
  1. using Admin.NET.Plugin.AiDOP.DataPlatform.MdpRebuild;
  2. using Furion.Schedule;
  3. using Microsoft.Extensions.DependencyInjection;
  4. using Microsoft.Extensions.Logging;
  5. using System.Text.Json;
  6. namespace Admin.NET.Plugin.AiDOP.Job;
  7. [JobDetail("job_s3_mdp_sync_transform", Description = "S3 MDP同步与标准化转换(含供应采购/仓储库存域原子聚合层)", GroupName = "default", Concurrent = false)]
  8. [Period(3600000, TriggerId = "trigger_s3_mdp_sync_transform", Description = "每60分钟执行")]
  9. public class S3MdpSyncTransformJob : IJob
  10. {
  11. private readonly IServiceScopeFactory _scopeFactory;
  12. private readonly ILogger _logger;
  13. public S3MdpSyncTransformJob(IServiceScopeFactory scopeFactory, ILoggerFactory loggerFactory)
  14. {
  15. _scopeFactory = scopeFactory;
  16. _logger = loggerFactory.CreateLogger(nameof(S3MdpSyncTransformJob));
  17. }
  18. public async Task ExecuteAsync(JobExecutingContext context, CancellationToken stoppingToken)
  19. {
  20. using var scope = _scopeFactory.CreateScope();
  21. try
  22. {
  23. var payload = await ModuleRebuildJobRunner.EnqueueEnabledScopesAsync(scope.ServiceProvider, "S3", "AUTO", stoppingToken, _logger);
  24. _logger.LogInformation("S3MdpSyncTransformJob 入队 {Payload}", JsonSerializer.Serialize(payload));
  25. }
  26. catch (OperationCanceledException) when (stoppingToken.IsCancellationRequested)
  27. {
  28. _logger.LogInformation("S3MdpSyncTransformJob 收到停止信号,结束本轮转换");
  29. }
  30. catch (Exception ex)
  31. {
  32. _logger.LogError(ex, "S3MdpSyncTransformJob 执行失败");
  33. }
  34. }
  35. }