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;
}
}
}
}