问题标签 [event-based-programming]

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 投票
4 回答
145 浏览

.net - 举办活动的合适地点?

我有一个刚刚开始的 Windows 窗体项目。在表单上,​​我有一个正在加载产品的列表框。当有人双击产品时,我希望它引发 ProductChanged 事件。我项目中的其他内容将订阅此事件并在产品更改时更新 GUI 其他部分的内容。

我的问题是,该事件应该在哪里以及应该由谁提出?事件是否应该在表单上并由列表框的双击处理程序引发?或者我应该在我的 Products 类中的事件所在的位置设置它,并且列表框调用此类上的方法以让它知道产品已更改。然后 Product 类会引发事件?还是应该以其他方式完成?

0 投票
2 回答
447 浏览

ruby-on-rails - 用于高度交互的基于事件的 Web 应用程序的 Grail 或 Ruby on rails?

在 Java 和 Perl 的背景下,我将 Web 框架的选择范围缩小到 Grail 或 RoR。

Web 应用程序是在私有云上运行的高度交互的内容管理应用程序。

一个愿景是让网页上的所有小部件都是事件驱动的:单击、双击、右键单击、键盘快捷键等。任一框架都支持吗?

0 投票
1 回答
256 浏览

ruby - 需要建议以在 Rails 中创建基于事件的消息传递和标记系统

我想创建一个基于事件的通知和标记系统,当用户完成特定目标时会奖励他们。目标可能包括:

  • 在论坛上发布 20 个条目 -> 在主页上突出显示用户的警报,获得徽章
  • 连续 10 天登录网站 -> 恭喜在主页上向用户发送消息
  • 评论 10 个论坛帖子 -> 论坛徽章奖

这对于像 AASM 这样的状态机来说是一项工作吗?我没有玩过这样的系统。那是定义事件的方法还是有更好的插件/解决方案可以适应这种行为?任何教程或方法建议将不胜感激。

0 投票
4 回答
4461 浏览

java - 是否有与 libevent 等效的 Java?

我编写了一个高吞吐量服务器,它在自己的线程中处理每个请求。对于进来的请求,有时需要对一个或多个后端执行 RPC。这些后端 RPC 由单独的队列和线程池处理,它为创建的线程数和到后端的最大连接数提供了一些限制(它会进行一些缓存以重用客户端并节省不断建立联系)。不过,在完成所有这些之后,我开始认为基于事件的架构会更有效。

在四处搜索时,我没有找到任何与 Java 的 libevent 等效的东西,但也许我没有找对地方?来自 Apache 的 Mina-statemachine 是我找到的最接近的东西,但它看起来比我需要的更冗长,并且没有可用的真正版本。

有什么建议么?

0 投票
1 回答
805 浏览

c# - 如何使用基于事件的异步模式的 Web 服务?

我正在按照以下示例进行操作

http://msdn.microsoft.com/en-us/library/8wy069k1.aspx

使用基于事件的异步模式(由第 3 方)实现的 Web 服务。

但是,我的程序需要多次调用,DoStuffAsync()因此将返回尽可能多DoStuffCompleted的 . 我选择了带有额外参数的重载 -Object userState来区分它们。

我的第一个问题是:将 aGUID转换为 Object 是否有效,其中 GUID 用于生成唯一的 taskID?

其次,我是否需要为每个DoStuffAsync()调用生成一个新线程,因为我多次调用它?

此外,如果有一些关于这个主题的在线示例或教程,我会很高兴。(我整天都在谷歌上搜索它并没有得到太多回报)

非常感谢

新问题:我可以在 AsyncCompletedEventArgs.UserState 中隐藏委托回调吗? 刚刚发现我需要给调用者一个回调来做善后......哎呀!

0 投票
2 回答
4295 浏览

c# - 我将如何实现基于事件的异步模式?

您好我想使用 c# 实现基于事件的异步模式。下面的 Microsoft 文档确实很有帮助,但它完全正确地忽略了实现细节。

http://msdn.microsoft.com/en-us/library/ms228969.aspx

我有哪些实施这种模式的选择?我应该使用 Delegate.BeginInvoke、ThreadPool.QueueUserWorkItem、new Thread()、BackgroundWorker 类还是其他什么?

我正在创建一个简单的代码库。它应该可以在 Windows 窗体、控制台应用程序或 ASP.NET 上下文中使用。

很高兴看到一些示例代码。

0 投票
2 回答
5185 浏览

python - Dataflow computing in python

I have n (typically n < 10 but it should scale) processes running on different machines and communicating through amqp using RabbitMQ. Processes are typically long running and may be implemented in any language (though most are java/python).

Each process requires a number of inputs (numbers/strings) and produces a number of outputs (also just numbers or strings). Executing a process happens asynchronously: sending a message on its input queue and waiting for a callback to be triggered by the output queue.

Ideally the user specifies some inputs and desired outputs and the system should:

  • detect which processes are needed and generate the dependency graph
  • topologically sort the graph and execute it, node transitions will need to be event driven

A node should fire if its input is ready, allowing parallelism per branch. I can assume no cycles for now, but eventually there will be cycles (e.g., two processes may need to iterate until the output no longer changes).

This should be a known problem from (data)flow programming (discussed here before) and I want to avoid re-inventing the wheel. I would prefer a python solution and a search leads to Trellis and Pypes. Trellis is no longer developed but seems to support cycles, while pypes does not. Also not sure how actively developed pypes is.

Further searches reveal a whole list of event based programming frameworks, none of which I am particularly knowledgeable about. There are of course workflow environments like Taverna and KNIME, but that seems overkill.

Does anybody have any experience tackling this type of problem or with the libraries mentioned?

Edit: Other libraries I found are:

0 投票
2 回答
2736 浏览

php - 如何使用 PHP 制作类似插件的 Web 应用程序?

堆栈溢出!

我正在寻找一种使用 PHP 制作类似插件(我不知道如何调用它)的 Web 应用程序的方法。我的意思是我想创建一个系统,用户可以通过浏览器添加/删除插件(扩展,如果你喜欢的话)(而不是通过向配置添加一些代码)。在我看来,WordPress 就是一个很好的例子。最终用户可以简单地安装任何类型的插件,并且几乎什么都不做,它们可以按预期工作,而且经常有很多设置需要更改等等。

另外,我很想让它尽可能可用。我的意思是插件可以使用其他插件的一部分,因此重写的代码更少。例如,有用于授权/身份验证的插件以及与用户相关的所有其他内容。然后,有用于博客的插件。博客,当然,需要前面提到过,对吧?所以它只是使用前面提到的插件来工作。我知道会有很多依赖等等......但这只是正常的。:)

我的问题是......我可以用什么技术来完成它?这种系统的优点和缺点是什么?我认为它会慢一些,并且不适合像 Facebook 这样的非常大的网站(好吧,这太大了),但对于简单的博客、投资组合,无论如何都可以!

我听说过事件驱动编程(或基于事件的编程),并且我在 Wikipedia 上阅读过有关它的文章,但仍然......我很困惑,甚至不确定这是我的事情寻找。

感谢您阅读本文。给我一些答案,如果可能的话。:D

0 投票
2 回答
6004 浏览

c# - 在基于事件的异步模式上使用任务并行库

我正在编写一个网络应用程序。

消息通过传输方式发送,如下所示:

我可以注册一个事件处理程序,以便在此消息类型到达时调用,如下所示:

事件被触发:

我正在为我的联网应用程序编写一个自定义身份验证过程,它需要大约五条消息才能完成。

如果不使用任务并行库,我将被迫在前面的事件处理程序中编写每个过程的下一步,如下所示:

我不喜欢跳过源代码来编写其中一部分和一部分的想法。很难理解和编辑。

我听说任务并行库大大简化了这个解决方案。

但是,我使用任务并行库阅读的许多示例都与启动一系列活动任务有关。我所说的“活动”的意思是,每个任务都可以在显式调用时启动,如下所示:

这与我的基于事件的异步模式相反,其中每个事件处理程序方法仅在收到消息时调用。

换句话说,我不能做这样的事情(但我想):

我读过这篇文章,但我不太明白。看来我需要做的TaskCompletionSource。如果我想从基于事件的异步模式(如上面的代码块)中创建一个任务,它会是什么样子?

0 投票
5 回答
34282 浏览

programming-languages - 有什么区别:异步、非阻塞、基于事件的架构?

  1. 有什么区别:

    • 异步,
    • 非阻塞,和
    • 基于事件的架构?
  2. 东西可以是异步的和非阻塞的(和基于事件的)吗?

  3. 编程中最重要的是什么:异步、非阻塞和/或基于事件的(或全部 3 个)?

如果你能提供例子,那就太好了。

之所以提出这个问题,是因为我正在阅读有关类似主题的这篇很棒的StackOverflow文章,但它没有回答我上面的问题。