问题标签 [em-synchrony]

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 回答
677 浏览

ruby - 如何将 EM::Synchrony::Multi 与 redis 一起使用?

我正在尝试并行执行多个 redis 查询,但出现错误:

这是代码:

请帮忙

0 投票
0 回答
273 浏览

concurrency - Sinatra::与 websocket 同步

鉴于Sinatra::Synchrony正在使用EM-Synchrony “便利类和原语的集合来帮助解开事件代码”,这样您就可以编写“快速、高度并发的 Web 应用程序而无需回调(只需像编写普通的 Sinatra 一样进行开发) Web 应用程序,并使用非阻塞库)"..

如何实现一个使用 websock 协议且没有回调的 Sinatra::Synchrony “hello world”应用程序?

换句话说:Sinatra::Synchrony 和 EM-Synchrony 是否也涵盖了 websocket 部分?我找不到足够的文档...有人可以给我几行代码吗?

谢谢

0 投票
1 回答
803 浏览

ruby - em-synchrony 使用 http.get 和迭代器导致无法在根 Fiber 错误中产生

一个非常简单的案例,我得到了根 Fiber 错误。

我可以在这里使用异步,但不能使用同步 http 请求。

0 投票
1 回答
151 浏览

ruby - 使用 em-synchrony 的 cramp 框架同步“渲染”正确方式

为了描述我的问题,我附上了简单的 Cramp http://cramp.in/类。我添加了一些修改,但它的主要工作方式类似于https://github.com/lifo/cramp-pub-sub-chat-demo/blob/master/app/actions/chat_action.rb

更多关于我尝试做的事情是在 handle_message 方法中。

我尝试以正确的顺序向客户端发送消息。首先向所有订阅者发布消息,然后仅为当前连接的客户端呈现一些内部信息。

对于上述代码客户端接收:

它不同步,可能是因为 em-hiredis 的响应不同。所以我尝试以这种方式同步它:

现在,客户端以正确的顺序处理消息。

我的问题是:

  • 当我评论 EM::Synchrony.next_tick 块时,消息顺序仍然不正确。在这个例子中 EM::Synchrony.next_tick 块有什么意义?
  • 这是使用 Cramp 或 EventMachine 处理内联同步的好方法吗?
  • 有没有更好、更清晰的方法来处理它?

谢谢!

0 投票
0 回答
478 浏览

ruby - EM::Synchrony.defer 与光纤感知数据库调用导致 FiberError 异常

我正在尝试在应用程序中使用 EM-Synchrony 进行并发,但在使用延迟代码和 Fibers 时遇到了问题。

在 EM.defer 或 EM::Synchrony.defer 中对数据库的任何调用都会导致应用程序因错误而崩溃can't yield from root fiber

下面是我正在尝试完成的一个非常精简的可运行示例。第一个打印工作并显示[:first, 1],但第二个是我因上述错误而崩溃的地方。

我的第一个想法可能是 EM::Synchrony.defer 中的 Fiber.current 和 Fiber.yield 意味着我可以通过额外的 Fiber.new 调用来解决问题

这也无法运行,但这次我得到了错误fiber called across threads

0 投票
1 回答
91 浏览

ruby - 处理 receive_data 和 em-synchrony 的任何示例?

有没有人有任何构建使用em-synchrony和的自定义网络客户端的示例receive_data

0 投票
1 回答
548 浏览

ruby-on-rails - 独立模式下的 Websocket-rails gem FiberError

我是第一次使用 websocket-rails gem。当我尝试在独立模式下触发某些事件时,我的服务器出现错误。但如果独立模式 = false 则没有错误

这是完整的堆栈跟踪

有任何想法吗?

0 投票
0 回答
367 浏览

ruby - `autoload` 的纤程问题:`通过堆栈重绕障碍 (FiberError) 调用纤程`

我们在生产环境中使用带有 eventmachine(em-synchrony)的 Fiber 已经很长时间了,而且效果很好。我们使用过时的 ruby​​ 1.9.3 和 ActiveRecord 3.x 超过 2 年。我们正在将这两个主要部分迁移到最新版本。

在尝试将 ruby​​ 升级到最新版本时,我们fiber called across stack rewinding barrier (FiberError)在 2.0+ 中遇到了异常,但在 1.9.3 中没有。你们能帮我们解决这个问题吗?

最小样本:

测试.rb

用户.rb

更多示例代码在这个 repo 中:

https://github.com/qqshfox/test_fiber

任何帮助,将不胜感激!

0 投票
1 回答
169 浏览

ruby - Ruby 并行运行

我目前有一个小的 ruby​​ 脚本,它连接到远程 SSH 服务器并检查文件的大小并提供结果是否已更改。

问题是大约有 10 台这样的服务器。我想并行连接和检查尺寸,而不是一一检查。谁能指导我如何做到这一点?我还检查了 EM-Synchrony,但我认为最有效的方法是使用 JRuby。

0 投票
0 回答
332 浏览

ruby - FiberError:使用 em-synchrony 的“跨线程调用光纤”

我在 sidekiq 工作人员中使用 em-synchrony 和 em-http-request (Ruby 2.1) 同时抓取多个链接。一切正常,除非我尝试同时使用刮板运行多个工人。这是我正在使用的代码:

当这个工作进程在同时运行多个实例的情况下运行时,它最终会抛出以下错误: