标签: event-driven-design

PL/SQL中的事件驱动编程

我有两个PL/SQL系统,驻留在两个独立的数据库中.SystemA需要填充SystemB的表.这可能是通过数据链完成的.每次在SystemB的表中插入一组记录时,必须运行SystemB中的进程.我可以等待SystemA完成然后运行脚本以在SystemB中开始处理,但由于SystemA可能花费很多时间处理然后填充SystemB,我宁愿SystemB在每个记录可用时立即处理它们(每个set可以独立于其他人处理,所以这应该工作正常).

我不确定的是我如何在PL/SQL中进行偶数驱动的编程.我需要SystemA通知SystemB一个集合已准备好进行处理.我的第一个想法是在SystemB中有一个特殊的"事件"表,然后当SystemA完成一个集合时,它会插入到"事件"表中,并且插入时会有一个启动进程的触发器(并且进程可能很长) SystemB中,每个进程可能需要5-10分钟).我对Oracle中的触发器没有足够的经验来了解这是否是一种既定的方法,或者是否有更好的机制.建议?提示?建议吗?

oracle plsql event-driven-design oracle10g

2
推荐指数
1
解决办法
1247
查看次数

具有事件溯源的域模型

愚蠢的问题......但是如果我使用事件源,为什么我还需要域模型。

我有(当然是事件总线)并且

  • 具有业务操作的应用程序服务,每个服务在基本验证后发送命令
  • 接收命令的命令处理程序执行额外的命令验证并发布事件
  • 事件处理程序处理事件、更新读取模型并将事件存储在存储库(事件源)中
  • 提供读取模型的读取模型服务
  • 前端(UI 或其他)使用读取模型服务中的读取模型)...并利用应用程序服务进行业务运营。

为什么我需要聚合根和域实体?附加层的作用是什么?

.net design-patterns event-driven-design cqrs event-sourcing

2
推荐指数
1
解决办法
1399
查看次数

在事件驱动的模拟器中同时发生的事件

我一直在尝试开发一个简单的事件驱动模拟器,并从这里开始

http://stdcxx.apache.org/doc/stdlibug/11-3.html

当我正在玩这个例子进行一些修改时,我遇到了一个条件,当两个事件(到达,离开)同时发生时(比如在时间单元5),然后模拟器只是弹出顶部的任何东西事件队列可以从下面的代码片段中看到.

void simulation::run () {

while (! eventQueue.empty ()) {

event * nextEvent = eventQueue.top ();
eventQueue.pop ();
time = nextEvent->time;
nextEvent->processEvent ();
delete nextEvent;
  }
}
Run Code Online (Sandbox Code Playgroud)

如果两个事件同时发生,我如何强制执行始终在出发事件之前弹出特定事件(首先到达事件)的条件.

任何帮助深表感谢.

c++ event-driven-design event-driven

2
推荐指数
1
解决办法
537
查看次数

监听多个事件

如何处理事件驱动架构中的相关事件?具体来说,如果必须触发多个事件才能执行某些操作,该怎么办。例如,我有一个微服务,它侦听两个事件foobar并且仅在两个事件到达且具有相同的关联 ID 时才执行操作。

一种方法是在微服务中保留一个内部数据结构来进行簿记,当一切都得到满足时,就会触发适当的操作。然而,这种方法的问题在于微服务不再是一成不变的。

有没有更好的方法?

event-driven-design microservices

2
推荐指数
1
解决办法
385
查看次数

在 MasstTransit 中发送、发布和请求/响应

最近我尝试在我们的微服务生态系统中使用MassTransit

根据 MassTransit 词汇和文档,我的理解是:

  • 发布:向 1 个或多个订阅者发送消息(发布/订阅模式)以传播消息。
  • Send:用于像发布一样以一劳永逸的方式发送消息,但它仅用于一个接收者。与发布的主要区别在于,在发送中如果您的目的地没有收到消息,它将返回异常。
  • 请求:使用请求/回复模式仅发送消息并在不同的通道中获取响应,以便能够从接收者获取响应值。

现在,我的问题是根据微服务的理念,遵循事件驱动的设计,我们使用Publish将消息(事件)传播到整个生态系统。但这里的Send到底有什么用法(用例)呢?只是为了在接收者不存在时获得异常?

我的下一个问题是,在微服务生态系统中同时使用PublishSendRequests是一种好方法吗?例如发布传播事件、发送命令(即发即忘)以及从目的地获取响应的请求。

----- 更新 我还发现克里斯·帕特森在这里澄清了很多事情。这对我也有很大帮助。

domain-driven-design masstransit event-driven-design microservices

1
推荐指数
1
解决办法
4603
查看次数

JavaScript具有模拟用户互动的方法,例如.click()、. focus()、. blur()。但是没有.hover()。JS可以模拟悬停/鼠标悬停吗?

Javascript可以模拟用户交互。

任何脚本可以像模拟用户交互clickfocus在网页上的特定元件上,通过使用方法.click().focus()

例:

const square = document.getElementsByClassName('square')[0];

const clickSquare = () => {

  event.target.dataset.receivedAction = 'click';
  event.target.innerHTML = '<p>I\'ve been clicked!</p>';
}

const clearSquare = () => {

  square.removeAttribute('data-received-action');
  square.innerHTML = '';
}

square.addEventListener('click', clickSquare, false);

const clickButton = document.querySelector('[data-deliver-action="click"]');
const clearButton = document.querySelector('[data-deliver-action="clear"]');

clickButton.addEventListener('click', () => square.click(), false);
clearButton.addEventListener('click', clearSquare, false);
Run Code Online (Sandbox Code Playgroud)
.square {
display: block;
width: 120px;
height: 120px;
margin: 12px 6px;
text-align: center;
font-family: arial, helvetica, sans-serif;
font-weight: bold;
font-size: …
Run Code Online (Sandbox Code Playgroud)

javascript event-driven-design event-driven dom-events

0
推荐指数
1
解决办法
109
查看次数