0

タイムアウトを 10 秒に設定して長いポーリング リクエストを実行していますが、機能していないようです。私の理解では、指定されたタイムアウト内にバックエンドから応答が得られない場合、バックエンド呼び出しはtimedoutエラー コードで終了する必要があります。そうですか?

しかし、0.001 などの非常に小さなタイムアウトを使用すると、機能します。したがって、リクエストがすでにバックエンドに送信されている場合、タイムアウトは機能しないと思います。

私の長いポーリング リクエストでは、リクエストが送信されて応答を待っているときにネットワークがダウンしていると、lua ソケットがそこでハングし、その状況から回復することはありません。他の方法でこれを処理できる場合は、私を助けてもらえますか?

私の Lua バージョン - Lua 5.1.4 Copyright (C) 1994-2008 Lua.org、PUC-Rio (double int32)

コードスピネット:

local http = require "socket.http"
local https = require "ssl.https"
http.TIMEOUT = 10
local r,s,h = https.request({
    url = url,
    method = "GET",
    sink = ltn12.sink.table(results),
    headers = {
        ["Cache-Control"] = "no-cache",
        ["X-Token"] = config.token
    }
})
4

1 に答える 1