【openresty】API disabled in the context of init_worker_by_lua

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章