问题标签 [reactor]
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.
redis - 如何使用 txredis 编写用于客户端服务器通信的异步扭曲应用程序
我想将redis用于我的游戏排行榜数据,并且我在 Stackoverflow 的一个问题中看到txredis是一个不错的选择。但是我找不到任何可能导致我开始编写一些代码的示例。有谁能够帮我?你知道有什么网站有例子吗?我会很感激你的帮助。
我正在尝试做类似的事情,但是它不起作用。TCP 客户端连接但当它发送“i:xxx”时立即断开连接:
python - 使用 twisted.trial.unittest 时反应堆在测试之间停止
有没有办法在测试之间保持在线连接?
我试图在运行多个测试集时保持用户登录,但注意到意外行为:每次测试后反应器停止(因此一旦建立连接变得不可用)。
为了探索这一点,我准备了示例测试文件(如下)。
这将创建简单的监听回声服务器并将其存储在类字段中。运行 3 个测试。服务器期望在所有测试期间正常运行(实际上它只在第一次测试结束之前运行)。
例子:
运行上面的文件:
在每次测试结束时显示“主循环终止”。在该端口继续监听所有测试之后(根据 netstat -n4lt)。但是在第 2 和第 3 个测试体期间 telnet 连接时没有回声(仅适用于第 1 个)。
Twisted doc http://twistedmatrix.com/documents/current/core/howto/testing.html#auto3说: “试用在单个进程中运行整个测试套件(超过四千个测试),使用单个反应器” (不幸的是我的 twistedmatrix 注册请求仍未得到验证,因此无法在那里提出问题)。
在我的真实案例中,每次测试都需要很长时间才能重复连接到服务器,所以我想对每一类案例至少执行一次。
那么,有没有办法在测试之间保持在线连接?
PS 使用 python 2.7.1、python-twisted 10.2.0-1、Ubuntu 11.04
python - Txredisapi exceptions.RuntimeError: 超出最大递归深度
我正在尝试删除 Redis 中除某些键之外的所有键,但确实出现以下异常:
这是代码:
当我在 Redis 中使用大约 725 个键调用 resetAll 函数时,我触发了异常。对于较低的数字,如 200 等,它不会被解雇。有人知道发生了什么吗?谢谢。
design-patterns - AI“智能代理”的设计模式
是否有推荐的设计模式来设计由多个智能代理组成的 AI 场景,这些智能代理不一定必须相互交互。
认为它基本上是遵循正确的对象构造和解构的模式?一些多路复用分叉一个新代理,然后在作业完成后删除该代理
这里有什么建议吗?
谢谢!
java - 带有 java.io 包的 Java 反应器模式
我在 Minecraft 和 JIrcs 等几个应用程序源中看到它们都使用 java.io 来实现 Reactor 插件(如果我没记错的话)以及在这篇文章中。那么,实现 Reactor Pattern 时 java.io 和 java.nio 有什么区别呢?我的意思是,像性能优势、流程效率等,如果你认为 java.io 是实现反应堆模式的好解决方案,我可以在哪里获得好的教程(因为谷歌给了我大量的 java.nio tuts 而不是我想要的 java.io)
c++ - 在 C++ 中寻找反应器模式示例源代码
只需阅读 Douglas R. Schmidt 关于反应器模式的论文,我希望看到一个实际实施的好示例来解决一些问题。我花了一些时间寻找一个完全实现的示例,但一直找不到。如果有人已经实现了这一点并且愿意分享将不胜感激的代码。或者,当然,一个指向 C++ 示例的链接也很好。
c++ - To use Active object or not?
The active object design pattern as I understand is tying up a (private/dedicated) thread life time with an object and making it work on independent data. From some of the documentation I read , the evolution of this kind of paradigm was because of two reasons , first , managing raw threads would be pain and second more threads contending for the shared resource doesn't scale well using mutex and locks. while I agree with the first reason , I do not fully comprehend the second . Making an object active just makes the object independent but the problems like contention for lock/mutex is still there (as we still have shared queue/buffer), the object just delegated the sharing responsibility onto the message queue. The only advantage of this design pattern as i see is the case where I had to perform long asynch task on the shared object (now that i am just passing message to a shared queue , the threads no longer have to block for long on mutex/locks but they still will blocka and contend for publishing messages/task). Other than this case could someone tell more scenarios where this kind of design pattern will have other advantages.
The second question I have is (I just started digging around design patterns) , what is the conceptual difference between , active object , reactor and proactor design pattern . How do you decide in which design pattern is more efficient and suits your requirements more. It would be really nice if someone can demonstrate certain examples showing how the three design patterns will behave and which one has comparative advantage/disadvantage in different scenarios.
I am kind of confused as I have used active object (which used shared thread-safe buffer) and boost::asio(Proactor) both to do similar kind of async stuff , I would like to know if any one has more insights on applicability of different patterns when approaching a problem.
python - 在非反应器线程中扭曲传输。写入
我正在设计一个 gui 应用程序作为我有 3 个类的服务器的客户端
一个用于扭曲协议的类,另一个用于工厂,第三个用于自身的 pyqt 线程。我如何从 pyqt 线程发送数据,例如,如果单击按钮,我如何使用当前的扭曲连接发送命令,这是我的代码的副本
ruby-on-rails-3.1 - 带有 Rails 和 EM-C2DM Gem 的 Heroku 上的 EventMachine
尝试在 Rails 中使用 GroupMe gem EM-C2DM,https://github.com/groupme/em-c2dm,这是一个使用 Event Machine 的 Google C2DM Ruby 库。我知道它应该在 Heroku 上工作,因为有一个特定于 Heroku 的配置,但是我似乎无法让它运行。
我正在通过 Resque Worker 执行,并且该工作者正常工作并被排队和调用。但是,它无法通过身份验证,并且永远不会报告推送通知的响应。它似乎永远不会结束。
我也尝试过不使用 EM::next_tick 或 EM.next_tick 并且它通过了身份验证,但是从不推送任何东西,从不返回响应或任何东西。实际上它从不进入 EM::next_tick。
关于如何让它发挥作用的任何想法?这是在 Heroku 上,使用带有 Thin 的 Rails 3.1.1
从我的 Gemfile.lock:
java - 多个 NIO 反应堆,还是只有一个?
我目前一直在阅读 Java NIO,过去我自己也做了一些实现。但是,我从来没有真正考虑过服务器的性能——这看起来很傻,而且确实如此。我听人说单线程反应器就可以了,但我真的很想利用我拥有的内核。
因为我要实现的是一个游戏,所以也有一些游戏逻辑线程,所以它不能占用很多线程——如果有的话,它可能只有两个。
这是我想出的情节:
- 高优先级反应堆
- 接受连接
- 处理游戏的登录过程(客户端发送数据包,服务器进程,服务器发送响应数据包,这里没有大量数据)
- 按需分发资源文件数据(游戏的构建是为了服务器发送客户端存储在缓存中的数据,该缓存包含游戏的几乎所有资源。大部分都是在加载游戏时完成的,但仍然会发生很多事情在后台播放)
- 标准反应器
- 读取并响应游戏中的数据包;这些通常很小,但数量很多,因为玩家所做的几乎所有事情都以数据包的形式分发,我想很好地扩展它以处理大约 200 名玩家)
目标:
- 适合约 200-300 名玩家
- 快速响应游戏数据包
- 快速分发上述文件数据
- 快速接受连接
此外,如果您熟悉它,游戏就是 RuneScape。我的目标是模拟 RuneScape 的官方服务器软件,因此我的可以与他们的客户之一一起使用。这是一种流行的做法——参见www.runelocus.com、www.rune-server.org,即
我的问题是:你认为这会是一个好的实现吗?仅仅拥有一个反应堆是一个更好的主意吗?还是我应该使用更多?我猜接收和发送的数据大致相同,可能在高优先级反应堆上多一点(这就是为什么它是高优先级的。)
此外,当我将其定义为高优先级时,我实际上并没有将其优先于标准反应器。它只是处理被认为比游戏包更重要的任务。
非常感谢任何反馈:) 如果需要任何澄清/解释,请让我知道!