我是水晶的新手,我正在尝试生成光纤以检查状态是否完整。这是一些代码。
4.2.6.RELEASE
当我创建其中一些时,会发生此错误(在此之前它似乎正常运行):
“spawn中未处理的异常:SSL_shutdown:操作正在进行中 (错误)“
编辑:
添加了更多信息,我认为玩具示例可能已经足够好但它可能与HTTP :: Client有关,因此我将其添加进来。我正在为某些api端点进行GET并以此方式获取状态。也许如果一个GET正在进行中,另一个无法打开?如果是这样,怎么做?
编辑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