在调用init.lua初始化的过程中,我调用了mysql数据库接口初始化数据,然后就提示了此错误:
2020/06/28 19:56:40 [error] 24673#24673: *7 [lua] init.lua:2: init , context: init_worker_by_lua*
2020/06/28 19:56:40 [error] 24673#24673: *7 [lua] data.lua:11: load(): context: init_worker_by_lua*
2020/06/28 19:56:40 [error] 24673#24673: init_worker_by_lua_file error: /usr/local/openresty/lualib/resty/mysql.lua:520: API disabled in the context of init_worker_by_lua*
stack traceback:
[C]: in function 'tcp'
/usr/local/openresty/lualib/resty/mysql.lua:520: in function 'new'
./../app/db/mysql.lua:4: in function 'mysql'
./../app/data.lua:13: in function 'loadData'
./../app/data.lua:36: in function 'init'
/home/./../app/init.lua:5: in main chunk
其实提示信息已经很明确了,接口在init_worker_by_lua*上下文环境中,被禁止使用,应该是nginx启动过程中,相关接口需要的资源还没有初始化完成吧。可以改到其他阶段执行,或者等初始化完成,在执行,简单操作就是将原接口loadData改成ngx.time.at(0,loadData)即可。