Files
Yi.Admin/Yi.Framework.Net6/Yi.Framework.Core/ConsulExtend/PollingDispatcher.cs

46 lines
1.1 KiB
C#
Raw Normal View History

2021-10-10 17:30:31 +08:00
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Consul;
using Microsoft.Extensions.Options;
2021-10-13 15:40:56 +08:00
using Yi.Framework.Common.IOCOptions;
2021-10-10 17:30:31 +08:00
2021-10-13 15:40:56 +08:00
namespace Yi.Framework.Core.ConsulExtend
2021-10-10 17:30:31 +08:00
{
/// <summary>
/// 轮询
/// </summary>
public class PollingDispatcher : AbstractConsulDispatcher
{
#region Identity
private static int _iTotalCount = 0;
private static int iTotalCount
{
get
{
return _iTotalCount;
}
set
{
_iTotalCount = value >= Int32.MaxValue ? 0 : value;
}
}
public PollingDispatcher(IOptionsMonitor<ConsulClientOption> consulClientOption) : base(consulClientOption)
{
}
#endregion
/// <summary>
/// 轮询
/// </summary>
/// <param name="serviceCount"></param>
/// <returns></returns>
protected override int GetIndex()
{
return iTotalCount++ % base._CurrentAgentServiceDictionary.Length;
}
}
}