其他相關函數
更新時間 2024-07-22 18:11:17
最近更新時間: 2024-07-22 18:11:17
分享文章
本文簡述其他章節不包含的功能函數的語法、作用、入參、返回值、示例。
ctyun.get_ip_location
函數信息詳見下表:
| 項目 | 描述 |
|---|---|
| 語法 | vender, province, city = ctyun.get_ip_location(remote_ip) |
| 作用 | 返回ip的歸屬運營商,歸屬省,歸屬地市。 |
| 入參 | ip地址,可以是ipv4,也可以是ipv6。 |
| 返回值 | 依次為ip歸屬運營商,歸屬省,歸屬地市。如果沒有找到則返回nil。 |
示例:
local vender, province, city = ctyun.get_ip_location("183.38.147.155")
if vender ~= nil then
ctyun.resp.set_output(vender..":"..province..":"..city.."\n")
else
ctyun.resp.set_output("unknown ip\n")
end
-- 輸出結果:
-- CN_dianxin:CN_guangdong:CN_guangdong_foshan
ctyun.split_string
函數信息詳見下表:
| 項目 | 描述 |
|---|---|
| 語法 | array = ctyun.split_string(str, split_token) |
| 作用 | 根據分隔符,分割字符串。將結果保存到數組中。 |
| 入參 | str為被分割的字符串,split_token為分割符。 |
| 返回值 | 返回分割后的結果放到數組中,可以通過ipairs遍歷。 |
示例:
local result = ctyun.split_string("aaa,bbb,ccc,ddd", ",")
for k,v in ipairs(result) do
ctyun.resp.set_output(v.."\n")
end
-- 輸出結果:
-- aaa
-- bbb
-- ccc
-- ddd
ctyun.refresh_mode
函數信息詳見下表:
| 項目 | 描述 |
|---|---|
| 語法 | is_refresh_mode = ctyun.refresh_mode() |
| 作用 | 查詢該請求是否處于刷新模式。 |
| 入參 | 無。 |
| 返回值 | 返回是否處于刷新模式,bool類型。 |
示例:
-- 設置緩存
local cache_key = ctyun.var('uri')
ctyun.req.set_cache(cache_key, "follow", 3600)
-- 刷新模式下跳過遠程鑒權
local is_refresh_mode = ctyun.refresh_mode()
if not is_refresh_mode then
local res, err = ctyun.query_remote("//daliqc.cn" + ctyun.var('uri'))
if err then ctyun.exit(403) end
if res.status ~= 200 then
ctyun.exit(res.status)
end
end
ctyun.get_file_size
函數信息詳見下表:
| 項目 | 描述 |
|---|---|
| 語法 | length, err = ctyun.get_file_size(cache_host, cache_url, request_url) |
| 作用 | 根據緩存key查詢文件大小。以緩存key為準,若緩存不存在以request_url回源查詢。 |
| 入參 | cache_host: string。必填,緩存host。 cache_url: string。必填,緩存url。 request_url:string。必填,文件的請求url,格式以"/"開頭(不含scheme和host)。 |
| 返回值 | 1.文件長度。 2.錯誤信息。 |
示例:
local length, err = ctyun.get_file_size("daliqc.cn", "/test.m3u8", "/test.m3u8")
if err then
ctyun.log("get file size err: ", err)
end
ctyun.worker.exiting
函數信息詳見下表:
| 項目 | 描述 |
|---|---|
| 語法 | is_exiting = ctyun.worker.exiting() |
| 作用 | 判斷Nginx的worker進程是否退出。 |
| 入參 | 無。 |
| 返回值 | is_exiting:布爾值,指示worker進程是否退出。 |
示例:
-- 例如在定時任務中, 檢測到nginx進程退出則停止定時任務的執行
local is_exiting = ctyun.worker.exiting()
if is_exiting then
return
end
ctyun.worker.count
函數信息詳見下表:
| 項目 | 描述 |
|---|---|
| 語法 | number = ctyun.worker.count() |
| 作用 | 獲取當前Nginx worker進程的數量,即Nginx配置中worker_processes的值。 |
| 入參 | 無。 |
| 返回值 | number:當前Nginx worker進程的數量。 |
示例:
local process_number= ctyun.worker.count()