c 輪詢演算法

2022-01-11 19:54:04 字數 1374 閱讀 3937

這兩天做東西,業務上有個特殊的需求,在使用者訪問頁面的時候,針對某一行**進行控制,按照概率來進行顯示,我做的是針對當前頁面的**進行處理,****是第三方的,頁面上只要有這段**就算是執行了這段****,所以才寫了這個輪詢的乙個方法,這個方法可以根據自己的需求修改,下面我把這個方法全部帖出來:

cacheslidingexpirationhour:時間,快取時間2小時
countdowncurrentindexcachename:快取名稱
log:日誌

m_objcountdowncurrentindexlock::當前物件

m_snintervalsecond:定義乙個陣列,可以視為概率值

說明:0,1,1,1 資料中存了4個數,我們設為總的概率為100%,每個代表25%,所以現在我設定的是當前的概率為75%

存如快取的是資料的索引,取的時候也取的索引,方法返回索引,轉成int型別

1

public

class

countdownhelper

2; //

1顯示 0不顯示910

public

countdownhelper()

1113

14public

intgetcountdownaddedsecond()

1530

else

3138

else

3942}43

44return

m_snintervalsecond[ncountdowncurrentindex];45}

46catch

(exception __error)

4754

return

m_snintervalsecond[ncountdowncurrentindex];55}

56}57}

5859 }

這個功能的需求是:業務部門需要監控當前頁面的**率,所以需要用概率去判斷當前的****如何在頁面上交替顯示,起初是**率為50%,所以陣列中直接就是new int ,後來改成75%,就是上面的**,所以這樣既可以監控**,有可以控制****。

前台呼叫是用ajax方式:

說明:等於1,將****新增到頁面,否則不加

1

<

div

id="adver"

>

div>

1

2 $.post("/topic/getcountdownaddedsecond", function

(data) 8}

9 }, "json");

(未經允許嚴禁用於商業用途!)

輪詢排程演算法

以下是本人在學習過程中隨手收集的一些內容,可能並不完備。如有錯誤,歡迎指正!每一次把來自使用者的請求輪流分配給內部中的伺服器,從1開始,直到n 內部伺服器個數 然後重新開始迴圈。輪詢排程演算法假設所有伺服器的處理效能都相同,不關心每台伺服器的當前連線數和響應速度。當請求服務間隔時間變化比較大時,輪詢...

C 實現Nginx平滑加權輪詢演算法

很簡單,演算法很經典!1.定義實體類 public struct serverconfig 當前權重 public int current 服務名稱 public string name 2.演算法 public static int nextserverindex serverconfig ser...

輪詢排程演算法 Round Robin

最近重溫了下nginx,看到負載均衡排程演算法預設是round robin,也就是輪詢排程演算法。演算法本身很簡單,輪著乙個乙個來,非常簡單高效公平的排程演算法。簡單的演算法實現 int datas 1 2,3 4,5 int size 5 int getnextdata 突然發現了一直被忽視的問題...