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+')…
openresty的定时任务是要跟worker绑定的.如果不绑定特定的worker,那么所有启动的woker都会去执行定时任务. 一般情况下默认绑定worker_id=0的,这样在nginx整个进程里面,就只执行一个timer. 在conf中具体的位置可以写自己的任务逻辑. 具体的nginx.conf配置如下: worker_processes ; error_log logs/error.log; events { worker_connections ; } http { init_work…
语法: ok,err = ngx.timer.at(delay,callback,user_arg1,user_arg2 ...) 上下文: init_worker_by_lua *,set_by_lua *,rewrite_by_lua *,access_by_lua *,content_by_lua *,header_filter_by_lua *,body_filter_by_lua *,log_by_lua *,ngx.timer.*,balancer_by_lua *,ssl_cert…
1. ngx.var.VARIABLE syntax: ngx.var.VAR_NAME context: set_by_lua*, rewrite_by_lua*, access_by_lua*, content_by_lua*, header_filter_by_lua*, body_filter_by_lua*, log_by_lua* 读或者写 Nginx 变量值: value = ngx.var.some_nginx_variable_name ngx.var.some_nginx_v…
翻译自: ngx.ssl - Lua API for controlling NGINX downstream SSL handshakes 1. 概要 # 注意:如果你使用的是 OpenResty 1.9.7.2+,则不需要该行 lua_package_path "/path/to/lua-resty-core/lib/?.lua;;"; server { listen 443 ssl; server_name test.com; # useless placeholders: ju…
参考链接: resty.core.shdict ngx_shared.DICT 源码正文: dict.lua 部分源码如下: local ffi = require 'ffi' local base = require "resty.core.base" local ffi_new = ffi.new local ffi_str = ffi.string local C = ffi.C local get_string_buf = base.get_string_buf local g…
Openresty 与 Tengine Openresty和Tengine基于 Nginx 的两个衍生版本,某种意义上他们都和淘宝有关系,前者是前淘宝工程师agentzh主导开发的,后者是淘宝的一个开源项目: Openresty的最大特点是引入了ngx_lua模块,支持使用lua开发插件: Tengine的特点是融入了因淘宝自身的一些业务带来的新功能: Tengine 简介 tengine官方网站:http://tengine.taobao.org/index_cn.html 在 Nginx官方…
https://github.com/openresty/lua-nginx-module#ngxctx 要点 生命周期和请求一致 每个请求的ngx.ctx是相互独立的,包括ngx.location.capture的子请求 内部跳转(Internal redirection)如ngx.exec会销毁ngx.ctx,重建新的. ngx.ctx的属性查找代价相对昂贵,所以尽量使用显式的函数参数. 原文 context: init_worker_by_lua, set_by_lua, rewrite_…
kafka 官网: https://kafka.apache.org/quickstart zookeeper 官网:https://zookeeper.apache.org/ kafka 运行需要 zookeeper 支持,所以安装 kafka 的时候需要先安装 zookeeper. kafka.zookeeper 的安装按照官网说的即可,我安装的时候没遇到什么问题,centos.mac都尝试安装了(mac 还是推荐使用 brew,很强大) 项目已经在使用 kafka 了,所以自己研究了下 o…
1.先来个官方的ngx.re.match location /ngx_re_match { default_type text/html; content_by_lua_block { local m, err = ngx.re.match("/live/4001493201083.m3u8", "[0-9]+") if m then -- m[0] == "4001493201083" ngx.say(]) else if err then n…