文件内容 IChannelHelper.cs 1 KB 1608 字符
using PasteApeart.Application.Contracts;
using System.Threading.Channels;

namespace PasteApeart.Handler
{
    /// <summary>
    /// 
    /// </summary>
    public interface IChannelHelper
    {
        /// <summary>
        /// 
        /// </summary>
        Channel<IEventModel> ChannelEventModel { get; }

        /// <summary>
        /// 压入到队列 如果MutexKey有值而MutexVal没有,则会进行赋值 如果ExpireSecond大于0则压入延迟队列,否则是及时队列
        /// </summary>
        /// <param name="input"></param>
        /// <returns></returns>
        Task WriteAutoQueueAsync(IEventModel input);
        /// <summary>
        /// 
        /// </summary>
        /// <param name="input"></param>
        /// <param name="isremove"></param>
        /// <returns></returns>
        [Obsolete("use WriteAutoQueueAsync set IsSubscribe=true")]
        Task WriteBroadcastMessageAsync(IEventModel input, bool isremove);
        /// <summary>
        /// 
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="input"></param>
        /// <returns></returns>
        [Obsolete("use WriteAutoQueueAsync set MutexKey !=stringEmpty and MutexVal is null")]
        Task WriteMutexMQAsync<T>(T input) where T : IEventModel;
        /// <summary>
        /// 
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="input"></param>
        /// <param name="id"></param>
        /// <returns></returns>
        [Obsolete("use WriteAutoQueueAsync set MutexKey !=stringEmpty and MutexVal is null")]
        Task WriteMutexMQAsync<T>(T input, object id) where T : IEventModel;
    }
}
​ ​