问题标签 [event-driven-design]
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.
c - 将 http 表单值传递给 C 程序
我被指派升级一个用 C 编写的嵌入式应用程序。该应用程序是通过 Web 界面配置的。
当用户修改 Web 应用程序时,会写入一个文件并触摸/var/www/settings.json
该文件。/var/www/UPDATE_SETTINGS
在主应用程序循环中,它检查是否UPDATE_SETTINGS
存在。如果是这样,它会解析settings.json
with json-c 然后删除UPDATE_SETTINGS
.
这工作得很好,然而,我们更愿意转移到一个事件驱动的架构(可能是 libev),在这种架构中,settings.json
webapp 脚本直接将其馈送到程序到一个普通的 UDP 端口,然后发出一个回调来执行更新.
还有什么其他优雅的方法可以解决这个问题?我们应该坚持目前的方法吗?
events - 事件驱动架构...无限循环
我有一个事件驱动的架构,其中 A 正在等待 B 的更改,B 正在等待 C 的更改,C 正在等待 A 的更改,形成一个循环。
现在,如果 B 发生变化,则 A 向 C 触发一个事件,C 向 B 触发,B 向 B 触发,A 向 C 触发……无限期地触发。
我现在可以更改我的程序以不包含此循环,但我担心我可能会在以后将自己置于一个我无法做到的角落。在设计基于事件的系统时如何防止此类事情发生?
python - Python网络编程设计题
我目前正在用 Python 编写一个项目,它有一个客户端和一个服务器部分。我的网络通信有问题,所以我需要解释一些事情......
客户端主要执行服务器告诉他的操作,并将操作结果发送回服务器。我需要一种在 TCP 套接字上进行双向通信的方法。
现在的情况
我目前LineReceiver
在服务器端使用 Twisted 框架,在客户端使用普通 Python socket
(and ssl
)(因为我无法正确实现 Twisted PushProducer
)。在客户端有一个Queue
填充了应该发送到服务器的数据;一个子进程不断地从队列中提取数据并将其发送到服务器(参见下面的代码)。
如果只有客户端将其结果推送给经理,则此方案运行良好。服务器不可能向客户端发送数据。更准确地说,客户端无法接收服务器发送的数据。
问题
我需要一种将命令从服务器发送到客户端的方法。
我考虑过在我用来从队列发送数据的客户端循环中监听传入数据:
但是这个解决方案有几个问题:
- 该
SSLSocket.read()
方法是一种阻塞方法 - 如果队列中没有数据,客户端将永远不会收到任何数据
是的,我可以使用Queue.get_nowait()
代替Queue.get()
,但总而言之,我认为这不是一个好的解决方案。
问题
有没有使用 Twisted 实现这一要求的好方法?在 Twisted 上,我真的没有太多的技能可以在那里找到自己的路。我什至不知道LineReceiver
对这类问题使用 是否是一个好主意,因为如果它没有从客户端接收数据,它就无法发送任何数据。只有一个lineReceived
事件。
Twisted(或更一般的任何事件驱动框架)能够解决这个问题吗?我什至没有交流方面的真实事件。如果服务器决定发送数据,它应该能够发送;尽可能不需要在通信端等待任何事件。
javascript - javascript (node.js):触发多个事件的单元测试代码
我正在尝试编写将测试多个事件触发的单元测试代码(caolan 的 nodeunit)。
所以,我正在测试
因此,仅对 1 个事件进行单元测试很容易。
现在,我习惯于setTimer()
倒计时并强制完成 X 时间,但有没有更好的方法呢?
architecture - 顺序与多线程会计事件处理
我们正在开发一个事件驱动的会计引擎,到目前为止,我们正在以批处理/顺序方式进行所有操作。
问题是每天会创建数千个事件,并且按顺序处理所有事件会使其变慢。
有没有一种安全的方法可以实现多线程事件处理会计引擎,而不用担心财务数据的完整性和一致性?
还是只是安全地玩它并允许遵循批处理/顺序方法更好?
javascript - for循环事件驱动代码?
在 redis 数据存储中,我有一个键列表,我想遍历该键列表并从 redis 获取这些值。问题是我正在使用事件驱动语言,通过 node.js 的 javascript
如果 javascript 是程序性的,我可以这样做
但是,我不能,因此..我这样做?
这接缝是错误的,因为我不是一次执行所有请求,然后让回调插入到列表中,而是强制执行顺序调用序列。如果有 1000 个密钥会发生什么?
我可以这样做吗?
weblogic - Staged Event Driven Architecture - Weblogic
When should I go for Staged Event Driven Architecture ? Do you see any issues in implementing SEDA in weblogic by having multiple Queues/MDBs as stages ? Any insights on disadvantages using SEDA ?
java - Java 和事件驱动编程
我正在使用javaeventing编写一个偶数驱动的 shell 来访问数据库。所以,我的用例是:
- 在命令行中打开 shell。
- 现在,shell 连接到数据库并监听传入的命令。
- 当它收到一个命令时,它会执行它并返回所需的输出。
现在,我怎样才能避免while(!exit){ //do stuff }
这种循环呢?如何正确使用 Java 事件?
直接的方法可以是:
但是,我正在寻找 java eventing 是否可以提供更好的解决方案。
更新1:
这是我想要实现的:
1我的应用程序是一个 shell(如 mongodb shell)来尝试一个键值数据库。
2简单代码:
现在,在这里我没有看到 java eventing 的使用,我解决了我的问题,你能告诉我,java eventing 将如何出现在这里?我希望用户触发事件。
events - 为什么要分别表示命令和事件?
强调事件的架构中的命令和事件有什么区别?我能看到的唯一区别是命令通常是由系统外部的参与者获取/调用的,而事件似乎是由系统中的处理程序和其他代码获取的。但是,在我见过的许多示例应用程序中,它们具有不同(但功能相似)的接口。