问题标签 [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.

0 投票
1 回答
132 浏览

orm - 如何使用 ColdFusion 的 Reactor 获取表迭代器?

我正在将 Reactor 与 ColdFusion 一起用于 ORM,并且我知道如何为表 X 获取网关对象,该对象提供了一个getAll返回包含表 X 中所有记录的查询的方法,但是我想要一个对象迭代器以便我可以在每条记录上使用getRelatedIterators 来获取相关表 Y、Z 等中的数据。

知道怎么做吗?

0 投票
1 回答
76 浏览

coldfusion - 如何使用 CF Reactor 获取记录的列名?

我想获取记录对象的列名的列表/数组。我想我可以通过遍历方法名称来得到这个,但我希望会有更干净的东西?

0 投票
2 回答
117 浏览

html - ColdFusion Reactor 的表单构建工具?

我正在使用带有 ColdFusion 的 Reactor,我想知道是否有任何工具可以从记录对象自动构建一个简单的 html 表单?

0 投票
3 回答
160 浏览

java - 具有有限线程的多个执行路径

我有一个具有挑战性的异步编程任务,想知道是否有人用 Java 做过类似的事情。假设我正在开发一个框架,它将像这样使用:

  1. 做一些自定义的 Java 东西
  2. 调用框架方法
  3. 做一些自定义的 Java 东西
  4. 调用框架方法

从用户的角度来看,上面的代码是同步的。但是,框架方法在内部执行一些长时间的异步操作,并且在操作期间阻塞用户线程是不高效/不可行的。阻塞用户线程是不可行的,因为我可能需要支持数千个步骤 1-4 的并发执行......换句话说,我正在寻找一种方法来支持使用 X > Y 的 Y 线程执行 X 并发 Java 代码。 .. 它有点类似于 Reactor 模式对 IO 所做的事情,但更通用.. 有什么想法吗?

0 投票
2 回答
6664 浏览

.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 文件,仍然可以看到所有的类和方法。根本没有任何东西受到保护。

我已经阅读了文档 - 它只是不起作用还是我做错了什么?

0 投票
1 回答
672 浏览

python - 如何使用 MsgWaitForMultipleObjects 可靠地检测断开连接的 TCP 套接字?

Twisted 包括一个在MsgWaitForMultipleObjects. 显然,反应器无法可靠地注意到 TCP 连接何时结束,至少在对等方发送一些字节然后快速关闭连接的情况下。似乎发生的是:

  1. 反应器MsgWaitForMultipleObjects使用一些套接字句柄和QS_ALLINPUT.
  2. 调用完成并指示处于此状态的套接字的句柄(即,有等待读取的字节并已被对等方关闭)处于活动状态。
  3. 反应器将此通知分派给通用 TCP 实现。
  4. TCP 实现从套接字读取可用字节。有一些,它们被传递到应用程序代码。
  5. 控制权返回到反应堆,最终MsgWaitForMultipleObjects再次调用。
  6. MsgWaitForMultipleObjectsnever 再次指示句柄处于活动状态。TCP 实现永远不会再次查看套接字,因此它永远无法检测到连接已关闭。

这使它看起来好像MsgWaitForMultipleObjects是一种边缘触发的通知机制。MSDN 文档说:

这听起来不像是边缘触发。这听起来像是水平触发。

实际上是MsgWaitForMultipleObjects边缘触发的吗?还是它是水平触发的,并且这种不当行为是由其行为的其他方面引起的?

附录 WSAEventSelect 的 MSDN 文档解释了这里发生的事情,包括指出这FD_CLOSE基本上是一次性事件。在它发出一次信号后,你将永远不会再得到它。这在某种程度上解释了为什么 Twisted 有这个问题。MsgWaitForMultipleObjects不过,鉴于此限制,我仍然有兴趣了解如何有效使用。

0 投票
1 回答
860 浏览

sockets - ACE 接受器 - My_Svc_Handler 类

我正在使用 ace 接受器来监听 TCP 端口。我的类继承自 My_Svc_Handler 并隐含了 My_Svc_Handler 类的函数 int open (void *)。在我看到的所有示例中,在 open 函数中,它们注册了反应器:

我不明白为什么我们需要注册?我已经有一个反应堆在等待一个事件。这是我在 main 中定义的:

我想我不明白什么时候调用 open 函数。

我对这种方式还有另一个问题。是否有另一种方式不运行 while(1) ?

0 投票
1 回答
4931 浏览

c++ - 使用 Poco SocketReactor 处理多线程的好方法是什么?

所以我开始对实现大容量客户端/服务器系统的替代方案进行一些研究,我目前正在研究 Poco 的 Reactor 框架,因为我现在将 Poco 用于我的很多应用程序框架。

传入的数据包大小将非常小,所以我认为从从客户端读取数据的角度来看它可以正常工作。但是将基于客户端输入执行的操作将相对昂贵,并且可能需要卸载到另一个进程甚至另一个服务器。发送回客户端的响应有时会相当大。所以很明显我不能在发生这种情况时阻塞反应器线程。

所以我在想,如果我只是读取反应器事件处理程序中的数据,然后将其传递给另一个处理数据的线程(池),它会更好。

我不太确定的是在操作完成后将响应发送回客户端的过程。

我找不到太多关于使用该框架的最佳方法的信息。但是我做了一些测试,看起来反应堆会在套接字可写时重复触发 WritableNotification 事件。那么最佳的过程是否是将需要发送的数据排队到接收 WritableNotification 事件的对象中,并在每次收到事件时发送小块?

更新:所以当我开始测试这个时,我惊恐地发现服务器应用程序在单个连接上运行的 CPU 上的服务器 CPU 使用率高达 100%。但经过一番挖掘后,我发现我做错了什么。我发现在创建服务处理程序时我不需要注册 WritableNotification 事件,我只需要在有数据要发送时注册。然后,一旦发送了所有数据,我应该取消注册事件处理程序。这样,当没有要发送的内容时,反应器就不必一遍又一遍地调用事件处理程序。现在,即使有 100 个连接,我的 CPU 使用率也接近于 0。哇!

0 投票
1 回答
656 浏览

python - 设置基本的 Twisted Reactor

我对使用 Twisted 很陌生。我在 .py 中设置了一个协议,它运行良好。问题是目前要对其进行测试,我必须通过 ssh 进入我的服务器并运行它。我想让它作为服务/服务器运行,所以它总是为我的协议服务。我在扭曲的网站上阅读了一些关于 .tac 文件的内容,但我不确定如何将其与我编写的协议文件联系起来。

我所拥有的只是一个简单的基于套接字的 iPhone 应用程序,它可以向反应器发送消息并接收回消息。

我希望它在服务器启动时启动。很像 apache 服务器的工作原理。

谢谢你的帮助。

0 投票
1 回答
1044 浏览

ace - 如何在 ace 中结束反应堆事件循环

我发现了两种在 ace 中结束反应器事件循环的方法:

它们之间有什么区别?我应该使用哪个?