问题标签 [drb]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
138 浏览

ruby - 从 Ruboto 访问网络

我正在尝试将来自 Android 的 Ruby-DRb-Messages 与 Ruboto 一起使用。我遇到了从 Ruboto 访问网络的问题,但没有找到任何示例或文档来解决此问题。

这是我的示例(我使用了 Ruboto QuickStartActivity 并尝试添加我的东西):

如果我使用两台 Linux 机器(DRb-Server 和 DRb-Client),DRb-stuff 可以通过网络正常工作。但是,如果我尝试上面的代码,logcat 会显示:

我的 Android 清单包括:

根据其他帖子(How to fix android.os.NetworkOnMainThreadException?)我读到,这个错误被抛出,因为在 Android 中无法使用主线程中的网络。

但是如何在 Ruboto 端解决这个问题以使 DRb 正常工作?

0 投票
1 回答
111 浏览

ruby - DRb -- 通过 JSON 编组以容纳非 ruby​​ 远程对象

我需要几种进程类型之间的通信,其中大部分是 ruby​​ 进程,但我需要与之通信的一个非常重要的进程类型是 python 进程。

我遇到了 DRb,我认为它可能适合作为使用我自己的通信协议的替代方案。

我想知道,是否有一种直接的方法来适应 python 进程类型。

python 进程类型只需要响应类型的消息 message_id, *JSONifiable_params

换句话说,我想做类似(在红宝石中)的事情:

python_server = DRbObject.new_with_uri(PYTHON_SERVER_URI, marshalling: :json)

然后在 python 中,处理为我希望它支持的方法调用发送的任何 JSON。

0 投票
0 回答
63 浏览

ruby-on-rails - Ruby 不断消耗外部 API 并跨进程共享输出

我正在用 ruby​​ 编写交易机器人,我需要不断地根据 Exchange 的多个守护进程(守护进程 gem)的订单簿深度数据进行一些计算。

问题是现在我在每个守护进程中分别通过 Exchange 的 API 获取数据,所以我遇到了 API 调用限制(40 个请求/秒)。这就是为什么我试图利用 ruby​​ Drb 在多个进程(守护进程)之间共享订单簿数据,以便不发送不必要的 API 调用。

虽然我不确定如何在服务器端持续使用 API 并向客户端进程提供最新的实际数据。在下面的示例代码中,客户端将在我启动服务器时获取实际数据

server_daemon.rb

client_daemon.rb

0 投票
2 回答
327 浏览

ruby - Ruby DRb - 线程安全

我正在研究多进程文件处理脚本。在尝试了线程/分叉之后,我发现了 IPC(管道/套接字)以及最后但并非最不重要的 DRb。它似乎是所有选项中功能最强大且相对用户友好的。

我正在阅读关于线程安全的文章: https ://en.wikibooks.org/wiki/Ruby_Programming/Standard_Library/DRb

但是当我尝试他们的示例时,我似乎没有得到线程安全的结果。

线程安全服务器:

客户:

我首先在后台运行服务器代码。我后来两次启动客户端代码:

现在我希望在文件 1.txt 和 2.txt 中看到不同的数字,因为每个客户端都控制了计数器并且在执行增量之前不会释放它。

我错过了什么明显的问题?:)

0 投票
2 回答
547 浏览

ruby-on-rails - RSpec 无法运行 --bisect,出现错误:未定义的方法 `run' for #

我目前正在从 Rails 3 升级一个相当大的 Rails 应用程序——> Rails 4(或者可能是 5)。

我目前正处于我有一个Rails v4.0.13应用程序运行在Ruby v2.1.5. 测试套件正在运行RSpec v3.5.2,并且是绿色的(哇哦!),但不幸的是出现了一些间歇性故障。

理想情况下,我希望在进一步升级之前使用rspec --bisect追踪这些失败的原因。

但是,当我运行rspec --bisect(带或不带其他参数)时,我收到以下错误:

有没有人知道可能导致这种情况的原因,或者我如何能够找到原因?

到目前为止,我尝试了一些事情,但无济于事:

  • 将 rspec 降级到较低版本(>= 3.3.0,因为那--bisect是添加的时间)。
  • 将 ruby​​ 升级到更高版本(即2.3.1)。(这会导致一些我尚未解决的测试失败,但仍然不会影响这个--bisect问题)。
  • 使用 ,清理系统rvm gemset empty <project_name>; gem install bunder; bundle以清除周围的所有升级前库代码。

还值得注意的是,我在这台计算机上还有其他Rails 项目,它们运行--bisect得很好——所以我不认为这可能是系统库兼容性问题。我想这一定与项目配置有关——但是什么?!(我什至看不到应用程序回溯的线索??)

编辑:还没有找到解决方案,我继续升级应用程序。它现在正在运行Rails v4.2.7Ruby v2.3.1并且所有规格都通过了(但仍然存在一些订购问题)。运行时的错误信息rspec --bisect保持不变。

0 投票
0 回答
14 浏览

ruby - 如何在 Windows 中与其他方法同时启动 Drb 服务

我想在 Windows 系统上startdrb同时运行该方法和该方法。printstuff我搞砸了,Thread.new但服务在线程完成后启动和终止。

这要怎么写?