openresty的ngx.timer.at
openresty的ngx.timer.at真是个强大的方法。
- 例如某些函数不可以在一些NGINX的执行阶段使用时,可以ngx.timer.at API 创建一个零延迟的timer,在timer中去处理。
- 遇到一些高延迟的函数,因为定时调用是在后台运行,并且他们的执行不会增加任何客户端的响应时长
local function save_message(premature)
ngx.sleep(5)
local file = assert(io.open('/tmp/test.log','a+'))
file:write(string.format("timer=====> %s %s\n", ngx.time(), "in timer"))
file:close()
end
local file = assert(io.open('/tmp/test.log','a+'))
file:write(string.format("out tomer 1=====> %s %s\n", ngx.time(), "out timer 1"))
file:close()
ngx.sleep(5)
local file = assert(io.open('/tmp/test.log','a+'))
file:write(string.format("out tomer 2=====> %s %s\n", ngx.time(), "out timer 2"))
file:close()
--ngx.sleep(5)
local ok, err = ngx.timer.at(0, save_message)
if not ok then
ngx.log(ngx.ERR, "[blm-metric] failed to create timer: ", err)
end
ngx.say("success")
结果将在5秒后返回,查看日志,每隔5秒分别打印出三次的结果,
openresty的ngx.timer.at的更多相关文章
- openresty跑定时任务配置、ngx.timer.every接口使用
openresty的定时任务是要跟worker绑定的.如果不绑定特定的worker,那么所有启动的woker都会去执行定时任务. 一般情况下默认绑定worker_id=0的,这样在nginx整个进程里 ...
- ngx_lua_API 指令详解(一)ngx.timer.at 指令
语法: ok,err = ngx.timer.at(delay,callback,user_arg1,user_arg2 ...) 上下文: init_worker_by_lua *,set_by_l ...
- OpenResty之ngx.var.VARIABLE
1. ngx.var.VARIABLE syntax: ngx.var.VAR_NAME context: set_by_lua*, rewrite_by_lua*, access_by_lua*, ...
- OpenResty之ngx.ssl
翻译自: ngx.ssl - Lua API for controlling NGINX downstream SSL handshakes 1. 概要 # 注意:如果你使用的是 OpenResty ...
- OpenResty之ngx.shared.DICT
参考链接: resty.core.shdict ngx_shared.DICT 源码正文: dict.lua 部分源码如下: local ffi = require 'ffi' local base ...
- Openresty 与 Tengine
Openresty 与 Tengine Openresty和Tengine基于 Nginx 的两个衍生版本,某种意义上他们都和淘宝有关系,前者是前淘宝工程师agentzh主导开发的,后者是淘宝的一个开 ...
- ngx.ctx
https://github.com/openresty/lua-nginx-module#ngxctx 要点 生命周期和请求一致 每个请求的ngx.ctx是相互独立的,包括ngx.location. ...
- openresty + lua 4、openresty kafka
kafka 官网: https://kafka.apache.org/quickstart zookeeper 官网:https://zookeeper.apache.org/ kafka 运行需要 ...
- ngx_lua_API 指令详解(二)ngx.re.match/find/gmatch/sub/gsub指令集合
1.先来个官方的ngx.re.match location /ngx_re_match { default_type text/html; content_by_lua_block { local m ...
随机推荐
- Unable to start activity ComponentInfo{com.example.administrator.myapplication/com.example.administrator.myapplication.MainActivity}: android.view.InflateException: Binary XML file line #0: Binary XM
本来就是把fragment写死在activity的xml模板里面,结果报了这个错误, Unable to start activity ComponentInfo{com.example.admini ...
- java md5加密 不依赖base64包
/** * MD5 加密 */ private String getMD5Str(String str) { MessageDigest messageDigest = null; try { mes ...
- javascript中Date使用总结(转)
//全局函数 Date //Date 类的静态方法 Date.parse Date.UTC //Date 对象的建立方法 new Date() new Date(毫秒数) new Date(标准时间格 ...
- Android 实现对图片 Exif 的修改(Android 自带的方法)
很多时候我们都要对我们的图片信息进行一些处理,比如向图片中写入经纬度,拍摄时间,设备信息,作者等等. 这个时候我们就要对我们的图片Exif进行写入信息的操作,当然,我们想知道图片的Exif信息,也可以 ...
- oracle导入和导出和授权
导入数据库: imp demo@orcl file=d:/bak_1023.dmp full=y ignore=y 导出数据库: @orcl file=d:/bak_1023.dmpexp yhtj/ ...
- Linux 开机自动挂载windows分区
blkid 查看 uuid如下ps:或者使用uuidgen <设备>查看具体设备的uuidreddusty@reddusty-X550JK:~$ sudo blkid[sudo] pass ...
- shell脚本之正则表达和文本处理(文本处理三剑客:1、grep 2、sed 3、awk)
文本处理三剑客:1.grep 2.sed 3.awk 一.grep:(过滤) grep的使用,主要的参数有: -n :显示行号:-o :只显示匹配的内容-q :静默模式,没有任何输出,得用e ...
- 查询ubuntu系统版本相关信息
查询ubuntu系统版本相关信息 sky@sky-virtual-machine:~$ cat /etc/issueUbuntu 12.04.5 LTS \n \l proc目录下记录的当前系统运行的 ...
- Spring MVC的静态和动态概念
MVC模式: 图释:用户请求通过HTTP协议到达Front controller,Front controller把请求送给Controller,Controller了解业务逻辑细节并且调用业务逻辑数 ...
- 【LYOI2016】EasyRound1
这可能是给新高一写的吧……随手写着玩玩…… A:随便模拟 #include<cstdio> #include<cstring> using namespace std; int ...