问题标签 [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.
ruby - IMAP 空闲如何工作?
有人可以向我解释 IMAP IDLE 的工作原理吗?它是否为它打开的每个连接创建一个新进程?我可以以某种方式使用 eventmachine 吗?
我正在尝试用后台工作人员在 heroku 上的 ruby 中实现它。有什么想法吗?
ruby - 如何使用 Ruby Eventmachine 编写(大)文件
我已经花了几天时间为 eventmachine 寻找一些非回显服务器示例,但似乎没有。假设我想编写一个接受文件并将其写入 Tempfile 的服务器:
写入文件会阻塞反应堆,但我不知道如何做到“Eventmachine 风格”。我是否必须以块的形式读取数据并将每个块写入 Em.next_tick 块中的磁盘?
感谢您的帮助安德烈亚斯
sinatra - async_sinatra 请求使用 em-http 静默崩溃。我该如何解决?
我有以下代码:
当我发出以下命令时,它运行良好:
但是,当我发出以下请求时,它会打印“h2”并且应用程序会静默退出:
任何帮助将不胜感激。谢谢!
ruby - 想了解 EM-Synchrony 、em-http-request 和 Fiber 的关系吗?
我想并发下载网页所以我找到了这些库,
但我无法区分 em-synchrony 和 em-http-request 之间的关系?
我检查了每个存储库的 github,但似乎所有示例都是关于自己的,
但是从一些文章来看,似乎 em-synchrony 和 em-http-request 可以一起使用,但我没有找到相关代码
如何编写此演示代码,谢谢
ruby - Ruby EventMachine + AMQP:确保在引发异常之前发生特定的异步调用
我们正在用 Ruby 构建一个支持 AMQP 的消息传递系统。但是,我们在错误处理方面存在问题。
我们维护了一个异常白名单,这是安全的,并且 RabbitMQ 中的消息可以不被其他工作人员确认并重试。但是,对于未知或不可预见的错误,我们假设无论工人尝试多少次消息,总是会发生相同的失败。
这意味着,当出现未知错误时,我们需要捕获它,将其记录在某个地方(目前是 MySQL),然后向ACK
RabbitMQ 发送调用以从队列中删除消息。
目前一切都是使用 amqp gem 构建的,它是通过 EventMachine 事件发生的。由于 gem 的异步行为,这会导致问题,导致调用#ack
方法,并不意味着ACK
已发送到 RabbitMQ。
以前我通过粗略地将 raise 代码放入EM.next_tick
. 现在我们需要对每个 Ruby 工作线程进行多线程处理以提高性能,next_tick
但它不起作用。
简而言之:
在 amqp gem 中的异步 ACK 调用之后,您将如何以同步方式运行特定的代码?回调会很好,但没有可用的,至少没有一些严重邪恶的猴子补丁。
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”
即使我运行一些完全简单的东西,例如:
并调用脚本/运行器:
我仍然得到错误。我究竟做错了什么?
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')
rvm - 停止瘦身会引发错误
我在 EventMachine 中运行一个小 Sinatra 应用程序,也带有一个 EM.WebSocket。
我已经设置瘦来运行我的应用程序,但是当我执行停止瘦的命令时,会引发错误。根据这里的小痕迹,我想知道是否有人可以帮助我清理它......
ruby - EventMachine - 你怎么知道你是否落后了?
我正在研究使用 EventMachine 驱动的 twitter-stream rubygem 来跟踪和捕获推文。我对整个事件编程的事情有点陌生。如何判断我在事件循环中所做的任何处理是否导致我落后?有没有简单的检查方法?
ruby - ruby 中的 socket.io 和 eventmachine
我正在尝试一个非常基本的服务器/客户端演示。我在客户端(浏览器中的用户)上使用 socket.io,在服务器上使用 eventmachine Echo 示例。理想情况下,socket.io 应该向服务器发送请求,服务器将打印接收到的数据。不幸的是,有些事情并没有像我期望的那样工作。
源码贴在这里:
这是红宝石代码: