@Toopie
мамааааааааааааааааааааа

Не работает функция wait() в Lua на nginx — что делать?

Здравствуйте, решил написать скрипт, который отдавал бы не сразу, а через время. Иначе говоря - хотел сделать LongPoll механизм.
Вот код:
local key = ngx.md5(ngx.var.remote_addr)
local time = ngx.req.start_time
local json = require('json')
local memcached = require('resty.memcached')
local cache = memcached:new()
local ok, error = cache:connect('127.0.0.1', 11211)

local method = ngx.var.request_method

if (method == 'GET') then
    local args = ngx.req.get_uri_args()
    local wait = tonumber(args['wait']) or 1

    for i = 1, wait do
        wait(1000)
    end
end

ngx.say(wait)

Но выдает ошибку:
[error] 18984#18984: *45 lua entry thread aborted: runtime error: /var/www/html/init.lua:15: attempt to call local 'wait' (a number value)
stack traceback:
coroutine 0:
	/var/www/html/init.lua: in function /www/html/init.lua:1>, client: 46.61.242.35, server: _, request: "GET /lua_init HTTP/1.1", host: "185.159.129.71"

Тут подключены Memcached и JSON, но не используются, однако, они нужны для дальнейшей разработки.
В чем может быть проблема? Я предпологаю, что в Memcached - может, у него есть лимит работы, к примеру, 0.04 секунды? Может бред, а может и нет...
  • Вопрос задан
  • 315 просмотров
Решения вопроса 1
yellow79
@yellow79
Senior Software Engineer
Назовите свою локальную переменную  wait по-другому, похоже она переопределяет глобальную
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы