Crystal Fibre错误 - “spawn中未处理的异常:SSL_shutdown:正在进行的操作(Errno)”

时间:2016-11-17 23:13:20

标签: crystal-lang

我是水晶的新手,我正在尝试生成光纤以检查状态是否完整。这是一些代码。

4.2.6.RELEASE

当我创建其中一些时,会发生此错误(在此之前它似乎正常运行):

  

“spawn中未处理的异常:SSL_shutdown:操作正在进行中   (错误)“

编辑:

添加了更多信息,我认为玩具示例可能已经足够好但它可能与HTTP :: Client有关,因此我将其添加进来。我正在为某些api端点进行GET并以此方式获取状态。也许如果一个GET正在进行中,另一个无法打开?如果是这样,怎么做?

编辑2:

不是解决方法。

2 个答案:

答案 0 :(得分:1)

您可能已点击crystal-lang/crystal#3168

我已经编写了这个程序用于测试,它似乎有效:

require "http/client"
require "json"

status = -1

spawn do
  while status != 5
    puts "Pinging..."
    response = HTTP::Client.get "https://randomapi.com/api/6de6abfedb24f889e0b5f675edc50deb?fmt=raw&sole"
    puts "Pong"
    response_to_hash = JSON.parse response.body
    status = response_to_hash[0]["first"].to_s.size
    pp status
  end
  puts "Finish!"
  exit 0
end

Fiber.yield

puts "Post yield"

sleep 20000.seconds # so the main thread doesn't exit yet

我不认为这与光纤有很大关系,而是与Crystal / OpenSSL错误有关。也许您可以rescue spawn块内的异常来查看实际的异常。

答案 1 :(得分:0)

这"错误"与waitlistt相关的操作已完成。应由https://github.com/crystal-lang/crystal/pull/4433

修正

现在发布了Crystal 0.23.0