我正在尝试以非阻塞方式执行一些代码。
在我的真实的场景中,这将是Ruby on Rails应用程序中一个代价高昂的SQL查询,然而,作为复制场景的测试,我创建了以下Ruby脚本:
#!/usr/bin/env ruby
require 'async'
puts 'hello'
Async do
sleep 2
puts 'hi'
end
puts 'there'
我期望看到:
hello
there
然而,我实际上得到的是:
hello
hi
there
两秒钟后。
我不关心异步调用的返回值--我只想在后台执行一些代码并立即退出。
在Ruby 3中有没有办法做到这一点?
1条答案
按热度按时间jq6vz3qz1#
使用线程可以轻松地完成此操作。