gpt4 book ai didi

ruby-on-rails - 在 rails 中存储 ssh 连接

转载 作者:太空宇宙 更新时间:2023-11-03 16:37:59 25 4
gpt4 key购买 nike

我有一个 Rails 应用程序需要通过 ssh 与几个服务器通信。我正在使用 Net::SSH 库,它运行良好。但是,我希望能够以某种方式在请求之间缓存/存储 ssh 连接(类似于 OpenSSH 多路复用)。

所以,我不能将它们存储在像 Memcached 或 Redis 这样的键值存储中(因为 ssh 连接不可序列化)。

我不想将它们存储在 session 中,因为它们旨在供所有用户使用(而且我认为它也需要可序列化)。

我设法让它与类变量initiliazer 常量 一起工作。我知道类变量不会在服务器之间复制(在生产中),而且我很确定初始化常量也不会。像这样的东西:

初始化器:

SSH = {}

型号:

class Server
def connection
require 'net/ssh'
SSH[name] ||= Net::SSH.start(ip, "root", :password => password)
end
end

OpenSSH 多路复用 会很棒,但我不确定我是否可以通过 Net::SSH ruby​​ 库来做到这一点(我又回到将主连接存储在某处)。

还有其他解决办法吗?或者,如果不是,哪一个是它们中最不邪恶的?

最佳答案

也许与其尝试在请求之间共享套接字,这必然会导致痛苦和痛苦,不如委托(delegate)给某种后台处理器?您可以设置 ssh 隧道并使用 DRb 进行通信,就好像它只是一个本地网络守护进程,或者是任何大量联网的异步作业处理守护进程。

http://ruby-toolbox.com/categories/queueing.html

关于ruby-on-rails - 在 rails 中存储 ssh 连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4762522/

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