GTask任務(wù)管理系統(tǒng)
GTask 支持遠(yuǎn)程管理任務(wù),執(zhí)行任務(wù)腳本(目前僅支持 lua),開(kāi)發(fā)者可以創(chuàng)建任務(wù)實(shí)例并為實(shí)例添加處理器,在處理器中配置執(zhí)行腳本就可以輕松地管理任務(wù)。
編譯與使用
Linux
./build/linux.sh
MaxOS
./build/macos.sh
編譯成功后在release目錄下會(huì)生成兩個(gè)文件,gtask和client,分別是服務(wù)端程序和客戶(hù)端程序。
服務(wù)端運(yùn)行
在config/config.json中保存著服務(wù)端監(jiān)聽(tīng)的端口號(hào)和登陸的密鑰,在客戶(hù)端連接服務(wù)器的時(shí)候?qū)?huì)用到該密鑰。啟動(dòng)服務(wù)端時(shí)需要指定配置參數(shù)。
./release/gtask -cfg ./config/config.json
客戶(hù)端連接服務(wù)器
./release/client -h [host] -p 1126
這時(shí)會(huì)要求輸入密鑰,該密鑰是初始化服務(wù)器時(shí)候的密鑰。
客戶(hù)端指令說(shuō)明介紹
| 指令 | 參數(shù) | 參數(shù)介紹 | 示例 |
|---|---|---|---|
| create job | key | 任務(wù)key | create job test |
| use | key | 該key必須已經(jīng)被創(chuàng)建 | use test |
| create processor | [filePath trigger bReset bLoop bExit] | (必須先use job) [腳本文件 觸發(fā)時(shí)間(秒) 能否被重置 是否循環(huán) 是否退出] | create processor ./example/lua/test_json.lua 3 0 1 0 |
| run | (必須先use job)啟動(dòng)任務(wù) | run | |
| delete | (必須先use job)停止并刪除任務(wù) | delete |
客戶(hù)端演示
客戶(hù)端測(cè)試
使用默認(rèn)配置文件并將服務(wù)端運(yùn)行在本機(jī)(localhost)
./release/client -h localhost -p 1126 secretKey:647851f2fcf6101aefa4a2c59a329a11c60300a4 # 創(chuàng)建任務(wù) > create job test create job [test] success # 選擇任務(wù) > use test select job [test] # 為任務(wù)創(chuàng)建執(zhí)行器,解析json并打印相關(guān)數(shù)據(jù),3秒執(zhí)行一次,循環(huán)執(zhí)行 test > create processor ./example/lua/test_json.lua 3 0 1 0 create processor success # 運(yùn)行任務(wù) test > run run job [test] success # 為任務(wù)補(bǔ)充一條執(zhí)行器,用來(lái)發(fā)送GET請(qǐng)求獲取網(wǎng)站數(shù)據(jù),5秒執(zhí)行一次,循環(huán)執(zhí)行 test > create processor ./example/lua/test_http_get.lua 5 0 1 0 create processor success # 停止并刪除當(dāng)前任務(wù) test > delete >
LUA執(zhí)行代碼介紹
// 函數(shù)名必須是processor // key(string): 任務(wù)key // count(number): 時(shí)間計(jì)數(shù) function processor(key,count) data = {} data["hello"]="world" data["a"] = {} data["a"]["b"] = "b" data["a"]["c"] = {1,2,3,4,5,6} res = jsonMarshal(data) res = jsonUnMarshal(res) for k,v in ipairs(res["a"]["c"]) do print(k,v) end return true // 如果返回false,當(dāng)前執(zhí)行器將會(huì)退出 end
LUA支持函數(shù)
加密
| 函數(shù) | 參數(shù) | 返回值 | 描述 |
|---|---|---|---|
| md5 | string | string | 獲取字符串的MD5值 |
| base64 | string | string | 獲取字符串的base64編碼 |
| base64UrlSafe | string | string | 獲取字符串url安全的base64編碼 |
| base64 | string | string | 獲取字符串的base64編碼 |
| hmac | [key:string, str:string] | string | 獲取hmac值 |
| sha1 | string | string | 獲取字符串的SHA1值 |
時(shí)間
| 函數(shù) | 參數(shù) | 返回值 | 描述 |
|---|---|---|---|
| now | number | 獲取當(dāng)前時(shí)間戳(毫秒) |
Json
| 函數(shù) | 參數(shù) | 返回值 | 描述 |
|---|---|---|---|
| jsonMarshal | table | string | 將table轉(zhuǎn)換成json字符串 |
| jsonUnMarshal | string | table | 將json字符串轉(zhuǎn)轉(zhuǎn)換成table |
Http
| 函數(shù) | 參數(shù) | 返回值 | 描述 |
|---|---|---|---|
| httpGet | [url:string header:table] | [res:string ok:bool] | 發(fā)送GET請(qǐng)求 |
| httpPost | [url:string header:table body:string] | [res:string ok:bool] | 發(fā)送POST請(qǐng)求 |
評(píng)論
圖片
表情
