暂存
This commit is contained in:
parent
0037291350
commit
7b1f04a452
@ -217,9 +217,9 @@ public class SampleAppService : CollectBusAppService, ISampleAppService, IKafkaS
|
|||||||
|
|
||||||
[KafkaSubscribe(["test-topic"])]
|
[KafkaSubscribe(["test-topic"])]
|
||||||
|
|
||||||
public async Task<bool> KafkaSubscribeAsync(string obj)
|
public async Task<ISubscribeAck> KafkaSubscribeAsync(object obj)
|
||||||
{
|
{
|
||||||
_logger.LogWarning($"收到订阅消息: {obj}");
|
_logger.LogWarning($"收到订阅消息: {obj}");
|
||||||
return await Task.FromResult(true);
|
return SubscribeAck.Success();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
21
src/JiShe.CollectBus.KafkaProducer/ISubscribeAck.cs
Normal file
21
src/JiShe.CollectBus.KafkaProducer/ISubscribeAck.cs
Normal file
@ -0,0 +1,21 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
|
namespace JiShe.CollectBus.Kafka
|
||||||
|
{
|
||||||
|
public interface ISubscribeAck
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 是否成功标记
|
||||||
|
/// </summary>
|
||||||
|
bool Ack { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 消息
|
||||||
|
/// </summary>
|
||||||
|
string? Msg { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@ -115,14 +115,18 @@ namespace JiShe.CollectBus.Kafka
|
|||||||
if (method.ReturnType == typeof(Task))
|
if (method.ReturnType == typeof(Task))
|
||||||
{
|
{
|
||||||
object? result = await (Task<bool>)method.Invoke(subscribe, new[] { messageObj })!;
|
object? result = await (Task<bool>)method.Invoke(subscribe, new[] { messageObj })!;
|
||||||
if (result is bool success)
|
if (result is ISubscribeAck ackResult)
|
||||||
return success;
|
{
|
||||||
|
return ackResult.Ack;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
object? result = method.Invoke(subscribe, new[] { messageObj });
|
object? result = method.Invoke(subscribe, new[] { messageObj });
|
||||||
if (result is bool success)
|
if (result is ISubscribeAck ackResult)
|
||||||
return success;
|
{
|
||||||
|
return ackResult.Ack;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
|
|||||||
75
src/JiShe.CollectBus.KafkaProducer/SubscribeResult.cs
Normal file
75
src/JiShe.CollectBus.KafkaProducer/SubscribeResult.cs
Normal file
@ -0,0 +1,75 @@
|
|||||||
|
using Confluent.Kafka;
|
||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using static System.Runtime.InteropServices.JavaScript.JSType;
|
||||||
|
|
||||||
|
namespace JiShe.CollectBus.Kafka
|
||||||
|
{
|
||||||
|
public class SubscribeResult: ISubscribeAck
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 是否成功
|
||||||
|
/// </summary>
|
||||||
|
public bool Ack { get; set; }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 消息
|
||||||
|
/// </summary>
|
||||||
|
public string? Msg { get; set; }
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 成功
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="msg">消息</param>
|
||||||
|
public SubscribeResult Success(string? msg = null)
|
||||||
|
{
|
||||||
|
Ack = true;
|
||||||
|
Msg = msg;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 失败
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="code"></param>
|
||||||
|
/// <param name="msg"></param>
|
||||||
|
/// <param name="data"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public SubscribeResult Fail(string? msg = null)
|
||||||
|
{
|
||||||
|
Msg = msg;
|
||||||
|
Ack = false;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static partial class SubscribeAck
|
||||||
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 成功
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="msg">消息</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static ISubscribeAck Success(string? msg = null)
|
||||||
|
{
|
||||||
|
return new SubscribeResult().Success(msg);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 失败
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="msg">消息</param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static ISubscribeAck Fail(string? msg = null)
|
||||||
|
{
|
||||||
|
return new SubscribeResult().Fail(msg);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
x
Reference in New Issue
Block a user