[size=large]先寫乙個思路 有空來寫著玩
基於ice和mysql的message queue
基本流程:
== 伺服器端 ==
class task:
table_id
id----------------------
1.寫資料到資料庫
2.mq.add(task)
寫入任務表
檢查是否有idle client
有開乙個執行緒
try:
update 任務表的任務 為對應的client
try:
idle_client.process(task)
except:
取消任務表的任務認領狀態
else:
任務表.delete(i)
if not buffer:
從資料庫中取沒有人認領資料填入
if buffer:
idle_client.process(task)
else:
idle_client_list.add(idle_client)
結束執行緒
無 加入buffer
== 客戶端 ==
接受到伺服器端發來的任務:
do(i)
== 表結構 ==
任務表結構 id table_id id client
以下3個表需要做程序內快取:
task類別的表 id table_name
client表結構 id client位址
表 <-> 處理函式的表 id 函式名
[/size]
自己實現printf
原理不是很難網上有很多,自己搜一下就明白了。void printlog const char fmt,看到上面 太簡單了,也許有人會說,這有什麼用?在我看來最大的用處在於寫日誌,如果我們把 稍稍改下就可以把螢幕上的輸出一起輸出到檔案乙份 在初始化處把全域性變數日誌檔案開啟就像這樣 plogfile ...
自己實現Promise
class mypromise 0 resolve obj reject obj then func,errfunc function fff resolve,reject test var m new mypromise fff var num 1 m.then obj obj console.l...
自己實現ArrayList
我們已經學過了陣列了,但我們知道乙個事,陣列是定長的,定長的陣列顯然是滿足不了我們的需求的,因為我們不知道自己需要多長的陣列,所以只能定義的盡可能大,這樣就會造成極大的空間浪費。那麼我們可不可以想個辦法去實現乙個不固定長度的容器呢?這節課我就來帶大家實現乙個不固定長度的容器。code 我的陣列表 用...