预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

c#实现轮询算法实例代码c#实现轮询算法实例代码轮询算法是最简单的一种负载均衡算法。它的原理是把来自用户的请求轮流分配给内部的服务器:从服务器1开始,直到服务器N,然后重新开始循环。下面小编为大家整理了c#实现轮询算法实例代码,希望能帮到大家!CacheSlidingExpirationHour:时间,缓存时间2小时CountdownCurrentIndexCacheName:缓存名称log:日志m_objCountdownCurrentIndexLock::当前对象m_snIntervalSecond:定义一个数组,可以视为概率值说明:0,1,1,1数据中存了4个数,我们设为总的概率为100%,每个代表25%,所以现在我设置的是当前的概率为75%存如缓存的是数据的索引,取的时候也取的索引,方法返回索引,转成int类型publicclassCountdownHelper{privateconstintCacheSlidingExpirationHour=2;privateconststringCountdownCurrentIndexCacheName="OnlineMeetingCountdownCurrentIndex";privatestaticIAppLoglog=AppLoggerManager.GetLogger(typeof(CountdownHelper));privatestaticCachem_cache=HttpContext.Current.Cache;privatestaticobjectm_objCountdownCurrentIndexLock=newobject();privatestaticint[]m_snIntervalSecond=newint[]{0,1,1,1};//1显示0不显示publicCountdownHelper(){}publicintGetCountdownAddedSecond(){lock(m_objCountdownCurrentIndexLock){ intnCountdownCurrentIndex=0; try { objectobjCountdownCurrentIndex=m_cache[CountdownCurrentIndexCacheName]; if(objCountdownCurrentIndex==null) { //如果需要加缓存的,就用下面的 //m_cache.Insert(CountdownCurrentIndexCacheName,1,null,Cache.NoAbsoluteExpiration,TimeSpan.FromHours(CacheSlidingExpirationHour),CacheItemPriority.NotRemovable,null); //不用加缓存的用下面的. m_cache.Insert(CountdownCurrentIndexCacheName,1,null,Cache.NoAbsoluteExpiration,Cache.NoSlidingExpiration,CacheItemPriority.NotRemovable,null); } else { nCountdownCurrentIndex=(int)objCountdownCurrentIndex; if(nCountdownCurrentIndex==m_snIntervalSecond.Length-1) { m_cache[CountdownCurrentIndexCacheName]=0; } else { m_cache[CountdownCurrentIndexCacheName]=nCountdownCurrentIndex+1; } } returnm_snIntervalSecond[nCountdownCurrentIndex];}catch(Exception__error) { //如果需要记录错误日志的,可以记录到这里,我这里没有加 //log.Error("功能介绍GetCountdownAddedSecond:"+__error.Message); if(nCountdownCurrentIndex>m_snIntervalSecond.Length-1) { nC