问题标签 [eventmachine]

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 投票
2 回答
5040 浏览

ruby - IMAP 空闲如何工作?

有人可以向我解释 IMAP IDLE 的工作原理吗?它是否为它打开的每个连接创建一个新进程?我可以以某种方式使用 eventmachine 吗?

我正在尝试用后台工作人员在 heroku 上的 ruby​​ 中实现它。有什么想法吗?

0 投票
4 回答
3873 浏览

ruby - 如何使用 Ruby Eventmachine 编写(大)文件

我已经花了几天时间为 eventmachine 寻找一些非回显服务器示例,但似乎没有。假设我想编写一个接受文件并将其写入 Tempfile 的服务器:

写入文件会阻塞反应堆,但我不知道如何做到“Eventmachine 风格”。我是否必须以块的形式读取数据并将每个块写入 Em.next_tick 块中的磁盘?

感谢您的帮助安德烈亚斯

0 投票
2 回答
818 浏览

sinatra - async_sinatra 请求使用 em-http 静默崩溃。我该如何解决?

我有以下代码:

当我发出以下命令时,它运行良好:

但是,当我发出以下请求时,它会打印“h2”并且应用程序会静默退出:

任何帮助将不胜感激。谢谢!

0 投票
1 回答
1034 浏览

ruby - 想了解 EM-Synchrony 、em-http-request 和 Fiber 的关系吗?

我想并发下载网页所以我找到了这些库,

但我无法区分 em-synchrony 和 em-http-request 之间的关系?

我检查了每个存储库的 github,但似乎所有示例都是关于自己的,

但是从一些文章来看,似乎 em-synchrony 和 em-http-request 可以一起使用,但我没有找到相关代码

如何编写此演示代码,谢谢

0 投票
1 回答
828 浏览

ruby - Ruby EventMachine + AMQP:确保在引发异常之前发生特定的异步调用

我们正在用 Ruby 构建一个支持 AMQP 的消息传递系统。但是,我们在错误处理方面存在问题。

我们维护了一个异常白名单,这是安全的,并且 RabbitMQ 中的消息可以不被其他工作人员确认并重试。但是,对于未知或不可预见的错误,我们假设无论工人尝试多少次消息,总是会发生相同的失败。

这意味着,当出现未知错误时,我们需要捕获它,将其记录在某个地方(目前是 MySQL),然后向ACKRabbitMQ 发送调用以从队列中删除消息。

目前一切都是使用 amqp gem 构建的,它是通过 EventMachine 事件发生的。由于 gem 的异步行为,这会导致问题,导致调用#ack方法,并不意味着ACK已发送到 RabbitMQ。

以前我通过粗略地将 raise 代码放入EM.next_tick. 现在我们需要对每个 Ruby 工作线程进行多线程处理以提高性能,next_tick但它不起作用。

简而言之:

在 amqp gem 中的异步 ACK 调用之后,您将如何以同步方式运行特定的代码?回调会很好,但没有可用的,至少没有一些严重邪恶的猴子补丁。

0 投票
1 回答
415 浏览

ruby-on-rails - 在脚本/运行器中运行 EventMachine

我从命令行成功使用了 em-dir-watcher ,如其 example.rb 文件中所示,但我发现自己需要从另一个类调用方法,因此我选择使用脚本/运行器路由,调用 rails。

我复制/粘贴了示例代码并将其放在 self.methodName 中并遇到此错误:

myapp/vendor/rails/railties/lib/commands/runner.rb:48: EventMachine:Module (NoMethodError) 的未定义方法“watch”

即使我运行一些完全简单的东西,例如:

并调用脚本/运行器:

我仍然得到错误。我究竟做错了什么?

0 投票
1 回答
198 浏览

ip - 发出请求时如何在 Ruby 中使用 event_machine 绑定到 IP?

我有一个应用程序可以访问一些 Web API,但它们通过 IP 限制了我。如何使用 EM 绑定到在我的专用服务器上分配给我的另一个 IP?

我真的希望它像这样简单:

http = EM::HttpRequest.new(address).send(method, :query => params, :head => head, :timeout => 13, :redirects => 3, :ip_to_bind_to => '192.168.1.22')

0 投票
1 回答
254 浏览

rvm - 停止瘦身会引发错误

我在 EventMachine 中运行一个小 Sinatra 应用程序,也带有一个 EM.WebSocket。

我已经设置瘦来运行我的应用程序,但是当我执行停止瘦的命令时,会引发错误。根据这里的小痕迹,我想知道是否有人可以帮助我清理它......

0 投票
2 回答
469 浏览

ruby - EventMachine - 你怎么知道你是否落后了?

我正在研究使用 EventMachine 驱动的 twitter-stream ruby​​gem 来跟踪和捕获推文。我对整个事件编程的事情有点陌生。如何判断我在事件循环中所做的任何处理是否导致我落后?有没有简单的检查方法?

0 投票
3 回答
8438 浏览

ruby - ruby 中的 socket.io 和 eventmachine

我正在尝试一个非常基本的服务器/客户端演示。我在客户端(浏览器中的用户)上使用 socket.io,在服务器上使用 eventmachine Echo 示例。理想情况下,socket.io 应该向服务器发送请求,服务器将打印接收到的数据。不幸的是,有些事情并没有像我期望的那样工作。

源码贴在这里:

这是红宝石代码: