69 lines
1.9 KiB
C#
69 lines
1.9 KiB
C#
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
|
|
{
|
|
/// <summary>
|
|
/// 创建群发任务命令
|
|
/// </summary>
|
|
public class CreateTaskCmdHandler : IEventHandler<CreateTaskCmdEvent>
|
|
{
|
|
|
|
private readonly IServiceProvider _serviceProvider;
|
|
|
|
public CreateTaskCmdHandler(
|
|
IServiceProvider serviceProvider
|
|
)
|
|
{
|
|
_serviceProvider = serviceProvider;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 可以处理
|
|
/// </summary>
|
|
/// <param name="event"></param>
|
|
/// <returns></returns>
|
|
public bool CanHandle(CreateTaskCmdEvent @event)
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 执行事件
|
|
/// </summary>
|
|
/// <param name="event"></param>
|
|
/// <param name="cancellationToken"></param>
|
|
/// <returns></returns>
|
|
public async Task<bool> 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<IMsgToolDomain>();
|
|
await msgToolDomain.CreateTaskCmd(@event.Appid, task);
|
|
return true;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
Log.Error(ex, "执行创建命令任务报错");
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|