【1】nginx定时器应用

(1)文件目录结构

(2)nginx.conf配置

lua_package_path  "/usr/local/lib/ubcsrvd/lualib/?.lua;;";

init_worker_by_lua_file work/bill_timer.lua;

(3)配置定时器时间

公共配置文件config.lua

-- 公共配置文件

local _M = {}

-- 吃饭定时器(3m)

-- 其他
-- TO DO ....

return _M

(4)定时器应用代码

    -- 定时器应用示例

    local cfg = require("config")
    local new_timer = ngx.timer.at

    local function timer_eat(premature)
        ngx.log(ngx.ERR, ]))
        if not premature then
            ngx.log(ngx.ERR, "timer to do eat .....")
            local rtn, err = new_timer(cfg.eat_timer_interval, timer_eat)
            if not rtn then
                ngx.log(ngx.ERR, "failed to create timer to eat : ", err)
            else
                ngx.log(ngx.ERR, "success to create timer to eat interval(s) : " .. cfg.eat_timer_interval)
            end
        end
    end

     == ngx.worker.id() then
        local rtn, err = new_timer(cfg.eat_timer_interval, timer_eat)
        if not rtn then
            ngx.log(ngx.ERR, "failed to create timer to eat : ", err)
        else
            ngx.log(ngx.ERR, "success to create timer to eat interval(s) : " .. cfg.eat_timer_interval)
        end
    end

(5)0 == ngx.worker.id()

注意:本地nginx启动后,工作进程配置的是3个。

ngx.worker.id() 为0 表示第一个工作进程。即这个定时器由进程1管理执行。

若想启动多个定时器,且分别由不同的进程管理执行,可以使用ngx.worker.id()为1或2等等其他进程。

当然,具体使用那个进程(必须满足:ngx.worker.id() < worker_processes)需要根据nginx.conf配置文件中worker_processes字段具体配置的工作进程个数。

【2】参数premature应用

(1)场景1:启动nginx

(2)场景2:关闭nginx

(3)场景3:重启nginx

(4)场景4:加载nginx配置 reload

(5)其他场景

【3】总结

nginx定时器应用示例如上。

执行定时器任务接口,增加premature参数,结合具体场景分析过程。

Good Good Study, Day Day Up.

顺序 选择 循环 总结

最新文章

  1. 完美解决,浏览器下拉显示网址问题 | 完美解决,使用原生 scroll 写下拉刷新
  2. Web开发者需养成的好习惯
  3. Html标签列表【转】
  4. linux下 tar解压 gz解压 bz2等各种解压文件使用方法
  5. SaltStack之无Master和多Master(九)
  6. OSIC Performance Bot
  7. 为什么玩VR眼镜会头晕?
  8. HTML5学习(六)---------SVG 与Canvas
  9. 《Thinking In Java第四版》拾遗
  10. Scala学习文档-样本类与模式匹配(match,case,Option)
  11. MySql 链接url 参数详解
  12. Android: Failure [INSTALL_FAILED_DEXOPT] and Failure [INSTALL_FAILED_UID_CHANGED] 解决方案
  13. 深入Web请求过程
  14. JAVA网络编程TCP通信
  15. 在C#中几种常见数组复制方法的效率对比
  16. 你学会UI设计了吗?
  17. js修改父子json格式成树状结构格式
  18. Android ORC文字识别之识别身份证号等(附源码)
  19. 从零开始学spring cloud(十一) -------- hystrix监控
  20. 《数据仓库ETL工具箱》读书笔记

热门文章

  1. implements
  2. Matlab中find函数陷阱
  3. USING CHARLES FROM AN IPHONE
  4. iOS:UICollectionView纯自定义的布局:堆叠式布局、圆式布局 (一般用来制作相册)
  5. Qt creator发布可执行文件方式----靠谱
  6. VBO与VAO 【转】
  7. Java里日期转换及日期比较大小
  8. Hive 脚本执行
  9. elasticsearch 基础性操作
  10. Angular 学习笔记——自定义指令之间的交互