using Confluent.Kafka; using Crm.Core.MsgTool.Domain.Events; using Crm.Core.MsgTool.Domain.Impl; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Crm.Core.MsgTool.Domain.Handlers { /// /// 创建群发任务命令 /// public class CreateTaskCmdHandler : IEventHandler { private readonly IServiceProvider _serviceProvider; public CreateTaskCmdHandler( IServiceProvider serviceProvider ) { _serviceProvider = serviceProvider; } /// /// 可以处理 /// /// /// public bool CanHandle(CreateTaskCmdEvent @event) { return true; } /// /// 执行事件 /// /// /// /// public async Task HandleAsync(CreateTaskCmdEvent @event, CancellationToken cancellationToken = default) { await Task.Delay(100); try { var task = @event.Task; if (task == null) { Log.Error($"执行创建命令任务报错: 任务不存在!"); return false; } var scope = _serviceProvider.CreateScope(); var msgToolDomain = scope.ServiceProvider.GetRequiredService(); await msgToolDomain.CreateTaskCmd(@event.Appid, task); return true; } catch (Exception ex) { Log.Error(ex, "执行创建命令任务报错"); return false; } } } }