问题标签 [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.
ruby - eventmachine 多个套接字
在反应器循环内启动多个侦听套接字“服务器”时 - 假设在一个侦听套接字回调中发生阻塞导致其他套接字停止接受新连接是否安全,因为反应堆循环将被阻塞?
那么最好的做法是为每个侦听套接字启动一个单独的 ruby 进程,还是有其他方法可以更好地处理这个用例?
.net - 告诉 .NET 反射程序(反射器、分析器和防病毒程序)exe 被混淆或在被反射时显示消息的选项
我使用产品 .NetReactor 来混淆我们的产品之一。该工具非常同意,所以如果有人试图以邪恶的目的反映到 exe 中,它不仅会返回垃圾,而且会导致我们的应用程序崩溃。您可以争辩说这很好(邪恶的人看不到代码),但我们不时看到像分析器和防病毒这样的工具试图反映良好的意图(以保护和发现性能问题)。当然,这样的工具也不应该被允许查看代码,但是在 .NET 或 .NET Reactor 工具中是否有可能以某种方式将 exe 标记为受混淆保护的好意图工具将能够检测到这一点并且不反映. 或者是否有可能在代码中知道您正在被反映并显示该 exe 无法反映的消息(比仅仅崩溃更用户友好)
python - Twisted Python:反应器和协议
我有几个关于 Twisted reactor 的问题。
1/ 什么样的错误会导致反应堆崩溃/停止/终止?什么样的错误不会?
2/ 我有两个反应器,每个反应器运行不同的协议。我有协议 A 和 B。
一个反应器在每次处理输入时都会创建一个协议 A 的新实例。如果协议 A 的某个实例出现错误,该错误只会影响该实例,并且反应器会保持平稳运行。
另一个反应器只运行一个协议 B 的实例(特别是我用它来处理标准 IO)。就像这样:
如果输入以某种方式在协议 B 中给出错误,那么它会影响整个反应器。在那种情况下反应堆真的停止了吗?
3/ 在上述第二个反应器的情况下,如果检测到错误,是否可以创建协议 B 的新实例来替换旧实例?
java - 什么是工作线程,它们在反应器模式中的作用是什么?
我试图理解 Reactor 模式(并发),但在许多示例中,他们都在谈论“工作线程”。什么是工作线程?它们与“普通”线程有何不同?它们在反应器模式中的作用是什么?
twisted - Twisted IRC Bot 与本地主机的连接反复丢失
我正在尝试在本地服务器上实现 IRC Bot。我使用的机器人与Eric Florenzano 的博客中的机器人相同。这是简化的代码(应该运行)
我在客户端工厂中添加了 startedConnection 方法,它正在到达并打印出正确的地址:主机。然后它断开连接并进入 clientConnectionLost 并打印错误:
如果工作正常,它应该登录到适当的频道,指定为命令中的第一个参数(例如,python module2.py botwar。将是频道#botwar。)。如果频道中的任何人发送任何内容,它应该以“hello there”响应。
我在服务器上运行NGIRC ,如果我从 mIRC 或任何其他 IRC 客户端连接,它就可以工作。
我无法找到解决它为什么会不断断开连接的解决方案。任何有关为什么的帮助将不胜感激。谢谢!
c - libev 网络服务器读取文件
在 C 中使用 libev 创建小型网络服务器时,在不阻塞反应器的情况下提供文件(打开、准备好、写入套接字)的最佳策略是什么?
我有一些建议一次阅读几个块,但我不确定这是否是正确的方法。
谢谢,
python - 爬虫使用twisted,getPage遇到超时错误怎么办?
我使用 twisted 及其 deferredGenerator 编写了一个爬虫。以下是关于我的问题的代码:
我使用发电机
我的问题是:当函数'getPage'出现超时错误时,我该怎么做才能处理错误并再次抓取错误页面?我曾经在getPage中添加了一个addErrback并想调用getPage,但似乎当reactor运行时,它不会再接收新事件了。
你们中有人遇到过同样的问题吗?我很感激你的帮助
ruby - 红宝石葡萄反应器被阻塞
我正在使用 Ruby Grape 创建 API,但遇到以下问题。当有新的 GET 请求时,请求的数据量很大,耗时较长,同时 Reactor 被阻塞,直到请求完成后才能处理新的请求。代码非常简单:
get_users 通过 TCP 连接到另一个系统,并获取大量转换为 JSON 的数据。这是使用 3rd 方 gem 完成的。处理这种情况的最佳选择是什么?
rabbitmq - 如何在反应器中使用并行代码确认芹菜任务?
我有一个 celery 任务,当被调用时,它会简单地在扭曲的反应器中启动一些并行代码的执行。这是一些示例(不可运行)代码来说明:
(为简单起见,请假设worker收到任务时reactor已经在运行;我使用信号@worker_process_init.connect
在worker一上来就在另一个线程中启动我的reactor)
当我调用run_task.delay()
时,任务很快完成(因为它不等待run_task_in_reactor()
完成,只安排在反应器中执行)。并且,当run_task_in_reactor()
finally 运行时,do_something()
或者do_something_more()
可以抛出异常,这将被忽视。
例如,使用pika
从我的队列中消费,我可以使用内部的 ACKdo_something_more()
来使工作人员通知任务的正确完成。但是,在 Celery 内部,这似乎是不可能的(或者,至少,我不知道如何实现相同的效果)
此外,我无法移除反应堆,因为这是我正在使用的某些第三方代码的要求。实现相同结果的其他方法也值得赞赏。
ruby - EventMachine.add_timer(0)
我遇到了一个添加超时计时器的代码0
:
这有意义吗?这怎么可能有用?这与使用有什么不同next_tick
吗?