異步處理相關函數
更新時間 2024-09-03 09:49:20
最近更新時間: 2024-09-03 09:49:20
分享文章
本文簡述異步處理相關函數的語法、作用、入參、返回值、示例。
ctyun.thread.run
函數信息詳見下表:
| 項目 | 描述 |
|---|---|
| 語法 | result,err = ctyun.thread.run(callback, arg1, arg2, ...) |
| 作用 | 創建一個線程, 異步執行lua函數。主要使用場景為異步通知遠端處理結果,不阻塞正常的業務流程。 |
| 入參 | callback 為lua函數,arg1,arg2,...為lua函數的參數。 |
| 返回值 | 創建成功返回true,失敗返回false,以及錯誤信息err。 |
注意由于是獨立的線程執行callback,跟正常的業務請求是獨立的環境。在callback中不能使用跟請求屬性相關的函數(ctyun.req和ctyun.resp以及ctyun.var)。如果需要用到相關的變量,請通過arg1,arg2,...參數傳進去。
示例:
local function test(url, body)
local res, err = ctyun.query_remote(url, {
method = "POST",
body = body,
headers = {
["Content-Type"] = "application/x-www-form-urlencoded",
},
}, 30000)
if err then
return
end
end
ctyun.thread.run(test, "//xy.daliqc.cn/session", "test bodyyyyyyy")
ctyun.resp.set_output("hello world")
結果:hello world