eventmachine相关内容

使用Thin和EventMachine运行模块化Sinatra应用程序。它开始两次了吗?

我使用Thin运行模块化Sinatra Web应用,同时EventMachine运行其他任务。 它可以工作,但是Web服务器有一点奇怪:任何请求,无论是成功的还是404s的,都不会出现在Thin/Sinatra的日志输出中。当我取消进程时,服务器结束两次。 以下是该应用程序的粗略基本结构: Procfile: web: ruby app.rb app.rb: re ..
发布时间:2022-03-29 10:30:26 其他开发

使用 Web Sockets 进行点对点文件共享

这是一个理论上的问题,但是,我需要为我的网络套接字驱动的聊天应用程序添加文件共享功能.我可以使用 Amazon S3 之类的服务通过发布文件链接来上传要共享的文件,但这涉及上传可能已经可以通过本地网络访问的文件(例如,在同事之间共享文件). 所以我有一个想法,即可以通过现有的网络套接字连接以某种方式隧道上传/下载/传输.但是,我对 HTTP 文件传输的了解还不够,无法知道如何实现它的下一步. ..
发布时间:2021-12-24 10:52:09 其他开发

事件驱动模型和反应器模式有什么区别?

来自维基百科Reactor Pattern 文章: 反应器设计模式是一种事件处理模式,用于处理由一个或多个输入并发传递给服务处理程序的服务请求. 它列举了一些例子,例如nodejs、twisted、eventmachine 但据我了解,上面是流行的事件驱动框架,所以让它们也成为反应器模式框架? 如何区分这两者?或者它们是一样的? 解决方案 反应器模式比“事件驱动编程 ..
发布时间:2021-12-22 09:06:19 其他开发

编译 Gem 时如何避免源被覆盖?

我正在尝试安装 eventmachine Gem,但是 一行需要在源代码中注释掉,以便在 Windows x64 上运行 Ruby 2.0. 我曾尝试修改 Ruby 构建文件夹中的 Gem 源代码,但每次运行 gem install eventmachine 时它都会覆盖我的更改.从命令行帮助来看,似乎没有办法在不解压新源的情况下重建 gem,但可能有一个解决方法. 有没有办法为这个 ..
发布时间:2021-11-25 07:38:03 C#

如何在 EventMachine 实现中捕获异常?

我有一个与 另一个帖子类似的问题,我已经尝试了给定的解决方案,但无济于事. 我的项目是一个 Ruby 机器人,它使用 Blather 库连接到 Jabber 服务器.问题是当服务器出现问题并且 Blather 生成异常时,整个程序退出,我没有机会捕获异常. 这是一些显示问题的简单代码.本地主机上没有运行 Jabber 服务器,因此 Blather 客户端抛出异常.我的印象是 EM.er ..
发布时间:2021-10-02 18:58:25 其他开发

使用 EventMachine 定期计时器进行可靠计时

我的目标是建立一个系统,每 10 分钟向 37,500 个城市播放一次广告.所有城市的数据库查询、计算和 AMQP IO 大约需要 5 分钟. 代码结构大致如下: EventMachine.add_periodic_timer(10 分钟) 做the_task_that_takes_five_minutes结尾 我发现,即使计时器设置为 10 分钟的间隔,即使任务花费不到 10 分钟,命 ..
发布时间:2021-09-07 20:20:36 其他开发

EventMachine的优势是什么

这是我的测试用例,我发现EM并不比一般的TCP服务器快 EM 服务器: 需要 'rubygems'需要“基准"需要“事件机器"类处理程序 解决方案 与线程相比简单,而不是速度.在此处查看更多见解:EventMachine:快速且可扩展的事件驱动 I/O 框架 适用于您的问题的引文: 关于事件驱动程序在理论上并不比线程程序快的事实已经写了很多,这是真的.但在实践中,我认为事 ..
发布时间:2021-09-04 20:02:24 其他开发

安装 gem 时出错,无法构建 gem 本机扩展 -- 无法加载此类文件 -- mkmf

RoR 很好,但有时让我想用头撞墙(无论如何这可能是我的错).我只是想安装 Thin 网络客户端 gem,当我运行 sudo gem install thin 时,我收到以下错误(它需要安装 eventmachine宝石优先): sudo gem install thin获取:eventmachine-1.0.1.gem (100%)构建原生扩展.这可能需要一段时间...错误:安装瘦的错误:错 ..
发布时间:2021-07-12 20:51:02 其他开发

Windows 上的细轨服务器/事件机器不适用于自定义证书

在 Windows 上使用 SSL 支持构建我自己的 eventmachine/thin 之后 (在 Windows 7 x86 上为 eventmachine 安装 OpenSSL with Ruby) 我遇到了 SSL 证书的另一个问题:当我使用内置的自签名一个薄的工作正常但它没有响应使用企业证书时的任何请求 这里是我获取证书的路径: 我用 puttygen (ssl-privat ..
发布时间:2021-07-12 19:49:45 其他开发

一个进程中的多个 Ruby EventMachines:可能吗?

我想在 Ruby 中运行多个 EventMachines - 有没有人有这方面的经验?(如果没有,我可能会写一个测试用例来自己做.敬请期待). 让我们明确一点:我想自己实例化两个线程,并在两个线程中调用 EventMachine.run,所以我真的有两个反应器循环. 原因是我正在使用 AMQP gem 编写异步消息总线,它使用 EventMachine.很好,但我想让它成为一个单独的模 ..
发布时间:2021-07-11 21:00:26 其他开发

使用 Thin & 进行 Http 流式传输事件机器

我正在使用 EM 来实现流式传输和并发.我在流媒体上遇到了问题...我运行以下机架应用程序 https://gist.github.com/1394840 使用 $ rackup -s thin -p 3000 async_app.ru 在使用 $ ab -c 10 -n 20 http://localhost:3000/ 进行测试时,该应用似乎接受并行请求.太棒了! 我希望它同时实现流 ..
发布时间:2021-07-11 20:50:42 其他开发

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

我已经花了几天时间为 eventmachine 寻找一些非回声服务器示例,但似乎没有.假设我想编写一个接受文件并将其写入临时文件的服务器: 需要'rubygems'需要“临时文件"需要“事件机器"模块示例服务器定义接收数据(数据)f = Tempfile.new('随机')f.写(数据)确保f.关闭结尾结尾事件机器::运行{EventMachine::start_server "127.0.0. ..
发布时间:2021-07-11 20:48:02 其他开发

为什么 Sinatra 请求需要 EM 线程?

Sinatra 应用程序接收对长时间运行任务的请求并 EM.defer,在 EM 的 20 个线程的内部池中启动它们.当运行的EM.defer超过20个时,通过EM.defer存储在EM的线程队列中. 然而,似乎 Sinatra 不会为任何请求提供服务,直到有可用的 EM 线程来处理它们.我的问题是,Sinatra 不是假设使用主线程的反应器来服务所有请求吗?为什么我在提出新请求时会在线程队 ..
发布时间:2021-07-11 20:11:42 其他开发

单个 EventMachine 反应器中的多个服务器

是否可以在单个事件机器中运行多个服务器? 我的意思是单个客户端连接可以同时使用多个服务.例如,登录服务器对用户进行身份验证,然后用户可以同时使用聊天室和简单的游戏,例如带有单个客户端套接字的跳棋? 还是每个服务都需要多个 eventmachine 反应器? 解决方案 我试过了,它正在工作: #!/usr/bin/env ruby需要“事件机器"模块 EchoServerdef ..
发布时间:2021-07-11 19:49:39 其他开发