问题标签 [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.
orm - 如何使用 ColdFusion 的 Reactor 获取表迭代器?
我正在将 Reactor 与 ColdFusion 一起用于 ORM,并且我知道如何为表 X 获取网关对象,该对象提供了一个getAll
返回包含表 X 中所有记录的查询的方法,但是我想要一个对象迭代器以便我可以在每条记录上使用getRelatedIterator
s 来获取相关表 Y、Z 等中的数据。
知道怎么做吗?
coldfusion - 如何使用 CF Reactor 获取记录的列名?
我想获取记录对象的列名的列表/数组。我想我可以通过遍历方法名称来得到这个,但我希望会有更干净的东西?
html - ColdFusion Reactor 的表单构建工具?
我正在使用带有 ColdFusion 的 Reactor,我想知道是否有任何工具可以从记录对象自动构建一个简单的 html 表单?
java - 具有有限线程的多个执行路径
我有一个具有挑战性的异步编程任务,想知道是否有人用 Java 做过类似的事情。假设我正在开发一个框架,它将像这样使用:
- 做一些自定义的 Java 东西
- 调用框架方法
- 做一些自定义的 Java 东西
- 调用框架方法
从用户的角度来看,上面的代码是同步的。但是,框架方法在内部执行一些长时间的异步操作,并且在操作期间阻塞用户线程是不高效/不可行的。阻塞用户线程是不可行的,因为我可能需要支持数千个步骤 1-4 的并发执行......换句话说,我正在寻找一种方法来支持使用 X > Y 的 Y 线程执行 X 并发 Java 代码。 .. 它有点类似于 Reactor 模式对 IO 所做的事情,但更通用.. 有什么想法吗?
.net - .NET 程序集保护与 .NET Reactor
我正在测试 Eziriz .NET Reactor以保护使用 Visual Studio 2010 C# WPF 开发的软件。
当 .NET Reactor 询问要保护哪个程序集时,我感到很困惑。我虽然它应该保护用户将安装的 .msi 文件。但它要求我上传一个 .exe 的程序集文件。因此,我将 .exe 上传到我的 bin/Debug 文件夹中,该文件夹是通过在 Visual Studio 中构建解决方案而生成的。
在 .NET Reactor 上运行保护后,我用 .NET Reflector 打开同一个 .exe 文件,仍然可以看到所有的类和方法。根本没有任何东西受到保护。
我已经阅读了文档 - 它只是不起作用还是我做错了什么?
python - 如何使用 MsgWaitForMultipleObjects 可靠地检测断开连接的 TCP 套接字?
Twisted 包括一个在MsgWaitForMultipleObjects
. 显然,反应器无法可靠地注意到 TCP 连接何时结束,至少在对等方发送一些字节然后快速关闭连接的情况下。似乎发生的是:
- 反应器
MsgWaitForMultipleObjects
使用一些套接字句柄和QS_ALLINPUT
. - 调用完成并指示处于此状态的套接字的句柄(即,有等待读取的字节并已被对等方关闭)处于活动状态。
- 反应器将此通知分派给通用 TCP 实现。
- TCP 实现从套接字读取可用字节。有一些,它们被传递到应用程序代码。
- 控制权返回到反应堆,最终
MsgWaitForMultipleObjects
再次调用。 MsgWaitForMultipleObjects
never 再次指示句柄处于活动状态。TCP 实现永远不会再次查看套接字,因此它永远无法检测到连接已关闭。
这使它看起来好像MsgWaitForMultipleObjects
是一种边缘触发的通知机制。MSDN 文档说:
这听起来不像是边缘触发。这听起来像是水平触发。
实际上是MsgWaitForMultipleObjects
边缘触发的吗?还是它是水平触发的,并且这种不当行为是由其行为的其他方面引起的?
附录 WSAEventSelect 的 MSDN 文档解释了这里发生的事情,包括指出这FD_CLOSE
基本上是一次性事件。在它发出一次信号后,你将永远不会再得到它。这在某种程度上解释了为什么 Twisted 有这个问题。MsgWaitForMultipleObjects
不过,鉴于此限制,我仍然有兴趣了解如何有效使用。
sockets - ACE 接受器 - My_Svc_Handler 类
我正在使用 ace 接受器来监听 TCP 端口。我的类继承自 My_Svc_Handler 并隐含了 My_Svc_Handler 类的函数 int open (void *)。在我看到的所有示例中,在 open 函数中,它们注册了反应器:
我不明白为什么我们需要注册?我已经有一个反应堆在等待一个事件。这是我在 main 中定义的:
我想我不明白什么时候调用 open 函数。
我对这种方式还有另一个问题。是否有另一种方式不运行 while(1) ?
c++ - 使用 Poco SocketReactor 处理多线程的好方法是什么?
所以我开始对实现大容量客户端/服务器系统的替代方案进行一些研究,我目前正在研究 Poco 的 Reactor 框架,因为我现在将 Poco 用于我的很多应用程序框架。
传入的数据包大小将非常小,所以我认为从从客户端读取数据的角度来看它可以正常工作。但是将基于客户端输入执行的操作将相对昂贵,并且可能需要卸载到另一个进程甚至另一个服务器。发送回客户端的响应有时会相当大。所以很明显我不能在发生这种情况时阻塞反应器线程。
所以我在想,如果我只是读取反应器事件处理程序中的数据,然后将其传递给另一个处理数据的线程(池),它会更好。
我不太确定的是在操作完成后将响应发送回客户端的过程。
我找不到太多关于使用该框架的最佳方法的信息。但是我做了一些测试,看起来反应堆会在套接字可写时重复触发 WritableNotification 事件。那么最佳的过程是否是将需要发送的数据排队到接收 WritableNotification 事件的对象中,并在每次收到事件时发送小块?
更新:所以当我开始测试这个时,我惊恐地发现服务器应用程序在单个连接上运行的 CPU 上的服务器 CPU 使用率高达 100%。但经过一番挖掘后,我发现我做错了什么。我发现在创建服务处理程序时我不需要注册 WritableNotification 事件,我只需要在有数据要发送时注册。然后,一旦发送了所有数据,我应该取消注册事件处理程序。这样,当没有要发送的内容时,反应器就不必一遍又一遍地调用事件处理程序。现在,即使有 100 个连接,我的 CPU 使用率也接近于 0。哇!
python - 设置基本的 Twisted Reactor
我对使用 Twisted 很陌生。我在 .py 中设置了一个协议,它运行良好。问题是目前要对其进行测试,我必须通过 ssh 进入我的服务器并运行它。我想让它作为服务/服务器运行,所以它总是为我的协议服务。我在扭曲的网站上阅读了一些关于 .tac 文件的内容,但我不确定如何将其与我编写的协议文件联系起来。
我所拥有的只是一个简单的基于套接字的 iPhone 应用程序,它可以向反应器发送消息并接收回消息。
我希望它在服务器启动时启动。很像 apache 服务器的工作原理。
谢谢你的帮助。
ace - 如何在 ace 中结束反应堆事件循环
我发现了两种在 ace 中结束反应器事件循环的方法:
它们之间有什么区别?我应该使用哪个?