在調用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)即可。