【问题标题】:Re-gain access to memory in a thread in Ruby?重新获得对 Ruby 线程中内存的访问权限?
【发布时间】:2011-05-27 05:33:58
【问题描述】:

在 Ruby 中,有没有办法分拆一个线程,在里面存储一个变量,然后稍后再回来,访问线程,访问线程内部的变量?

基本上我需要将资源存储在一些公共内存池中。这些不能序列化或存储在 Memcached 中。我面临的问题是我想在 AJAX 调用中保留一个 FTP 连接对象。我需要在多个 AJAX 调用的服务器端重新获得对连接对象的访问权限。

【问题讨论】:

  • 有什么理由不使用Queue 类? ruby-doc.org/core/classes/Queue.html
  • 我需要在 AJAX 请求之间访问这个变量。它是一种资源,因此不能存储在 Memcached 之类的东西中。
  • 数据库?一块饼干?会话信息?我认为您描述的局限性不足以让别人回答这个问题。
  • 是的!我正在使用 Rails。我面临的问题是我想在 AJAX 调用中保留一个 FTP 连接对象。我需要重新获得对多个 AJAX 调用的服务器端连接对象的访问权限。
  • 我们做了类似的事情,但使用了一个单独的应用程序。它加载 rails 环境,因此可以访问所有模型等,但它只是独立运行。如果你想出一个更好的方法来做到这一点,我想知道。

标签: ruby-on-rails ruby multithreading


【解决方案1】:

我最终使用全局变量(例如 $my_global)完成了这项工作。我有一个 ConnectionPooler 单例类,它管理存储在哈希中的连接。很简单。

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 1970-01-01
    • 2017-10-21
    • 2019-07-01
    • 1970-01-01
    • 2012-02-13
    • 2017-04-13
    • 2015-05-18
    • 1970-01-01
    相关资源
    最近更新 更多