gpt4 book ai didi

ruby - 停止分布式 Ruby 服务

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:22 25 4
gpt4 key购买 nike

我有一个启动 DRb 服务的脚本,然后生成处理程序对象并通过 DRb.thread.join 等待。我希望脚本一直运行直到被明确杀死,所以我添加了

trap "INT" do
DRb.stop_service
end

在 Ruby 1.8 下成功停止 DRb 服务并退出,但在 1.9 下似乎死锁(在 OS X 10.6.7 上)。对该进程进行采样显示在 semaphore_wait_signal_trap 中有几个线程在旋转。

我假设我在调用 stop_service 时做错了什么,但我不确定是什么。谁能给我任何关于如何正确处理它的指示?

最佳答案

好的,我想我已经找到了解决方案。如果我将原始代码替换为

begin
DRb.thread.join
rescue Interrupt
ensure
DRb.stop_service
end

Ctrl-C 起作用并停止服务。

关于ruby - 停止分布式 Ruby 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5460799/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com