【问题标题】:Trino server is accepting connection, but is still initializing. How to wait until Trino is ready to receive queries?Trino 服务器正在接受连接,但仍在初始化。如何等到 Trino 准备好接收查询?
【发布时间】:2021-06-05 12:22:43
【问题描述】:

在某些背景下,我们已将 Trino 服务器作为 CI 设置的一部分,并且当前测试失败,而服务器仍在添加所有目录。目前,我已经设置了我们的 CI 来重试这个 curl 命令,但它不会等到服务器完全启动。

docker run appropriate/curl --retry 60 --retry-delay 1 --retry-connrefused http://trino:8080/

Trino 在完全初始化之前做出响应,因此测试由于 Trino 服务器错误而开始失败:Trino server is still initializing

【问题讨论】:

    标签: trino


    【解决方案1】:

    为了检查 Trino 服务器是否仍在初始化,您可以通过连接到协调器来查询有关集群的信息。您可以通过以下命令查看有关集群的信息。

    docker run appropriate/curl --retry 60 --retry-delay 1 --retry-connrefused http://trino:8080/v1/info
    

    根据服务器的状态,它将返回类似于以下 JSON 的内容。

    {
      "nodeVersion": {
        "version": "358"
      },
      "environment": "test",
      "coordinator": true,
      "starting": false,
      "uptime": "7.56m"
    }
    

    您可以使用$.starting JSON 字段来确定服务器是否处于活动状态并准备好进行查询。提供了一个简单的 ruby​​ 脚本,在给予之前尝试 60 次。

    cat <<"RUBY" | ruby
    60.times do
      exit if `docker run appropriate/curl http://trino:8080/v1/info | jq .starting`.strip == 'false'
      sleep 1
    end
    exit!
    RUBY
    

    【讨论】:

      猜你喜欢
      • 2021-12-14
      • 2022-09-28
      • 2021-10-26
      • 1970-01-01
      • 2022-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多