在 2016年4月1日,17:24,赵睿 <mixia...@gmail.com> 写道:我想写一个模块,用共享内存存放一些数据,为各个worker提供处理数据,数据的获取采用刚启动nginx的时候调用api获取。但是数据的更新不太清楚怎么做好。暂时的想法是,nginx能否专门起一个进程或者线程来实现crontab或者是长连接的形式跟api通信。 -- --
为啥不直接用 DICT ?在 2016年4月1日,17:24,赵睿 <mixia...@gmail.com> 写道:我想写一个模块,用共享内存存放一些数据,为各个worker提供处理数据,数据的获取采用刚启动nginx的时候调用api获取。但是数据的更新不太清楚怎么做好。暂时的想法是,nginx能否专门起一个进程或者线程来实现crontab或者是长连接的形式跟api通信。 --
在 2016年4月1日,17:24,赵睿 <mixia...@gmail.com> 写道:我想写一个模块,用共享内存存放一些数据,为各个worker提供处理数据,数据的获取采用刚启动nginx的时候调用api获取。但是数据的更新不太清楚怎么做好。暂时的想法是,nginx能否专门起一个进程或者线程来实现crontab或者是长连接的形式跟api通信。 --
我想写一个模块,用共享内存存放一些数据,为各个worker提供处理数据,数据的获取采用刚启动nginx的时候调用api获取。但是数据的更新不太清楚怎么做好。暂时的想法是,nginx能否专门起一个进程或者线程来实现crontab或者是长连接的形式跟api通信。 --
hello,你可以使用 init_worker_by_lua + ngx.timer.at + cosocket需要注意的是,你需要处理好 nginx worker 优雅退出的场景另外,你也可以暴露一个 api 出来,让外部主动调用更新在 2016年4月1日 下午5:24,赵睿 <mixia...@gmail.com>写道:我想写一个模块,用共享内存存放一些数据,为各个worker提供处理数据,数据的获取采用刚启动nginx的时候调用api获取。但是数据的更新不太清楚怎么做好。暂时的想法是,nginx能否专门起一个进程或者线程来实现crontab或者是长连接的形式跟api通信。 --
目前来说,想做一些唯一执行的计划任务与后端API进行通信,但是ngx.timer.at不能写在init_by_lua中。那么我在init_worker_by_lua中写ngx_timer_at会同时开启N(worker数目)个链接与后端API进行通信,这不是我想要的。我想要一个唯一的链接轮询后端的API。请问一下,有没有更好的方法呢?
在 2016年4月2日星期六 UTC+8下午8:56:44,doujiang写道:hello,你可以使用 init_worker_by_lua + ngx.timer.at + cosocket需要注意的是,你需要处理好 nginx worker 优雅退出的场景另外,你也可以暴露一个 api 出来,让外部主动调用更新在 2016年4月1日 下午5:24,赵睿 <mixia...@gmail.com>写道:我想写一个模块,用共享内存存放一些数据,为各个worker提供处理数据,数据的获取采用刚启动nginx的时候调用api获取。但是数据的更新不太清楚怎么做好。暂时的想法是,nginx能否专门起一个进程或者线程来实现crontab或者是长连接的形式跟api通信。 -- --
Hello! 2016-04-04 22:38 GMT-07:00 DeJiang Zhu: > 或者,更简单的办法,用 ngx.worker.id,只是需要注意 cache manager 的 worke.id 也是从 0 开始的 我们其实应该让 ngx.worker.id() 在 cache manager 这样的 helper process 里面返回 nil. 欢迎贡献补丁哈! Best regards, -agentzh