第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

Axon - 在查詢時(shí)進(jìn)行投影的最簡(jiǎn)單方法

Axon - 在查詢時(shí)進(jìn)行投影的最簡(jiǎn)單方法

叮當(dāng)貓咪 2022-12-15 16:03:38
我通常每個(gè)聚合有 5-6 個(gè)事件,并且不想將預(yù)測(cè)存儲(chǔ)在數(shù)據(jù)庫(kù)中。在查詢時(shí)始終進(jìn)行視圖投影的最簡(jiǎn)單方法是什么?
查看完整描述

1 回答

?
千巷貓影

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊

對(duì)此的簡(jiǎn)短回答是,沒(méi)有簡(jiǎn)單/快速的方法可以做到這一點(diǎn)。

但是,實(shí)施“在請(qǐng)求時(shí)重播給定事件”設(shè)置肯定是可行的。

我建議你做的事情分為幾個(gè)步驟:

  1. 創(chuàng)建你想返回的查詢模型,它可以處理事件@EventHandler在模型上使用帶注釋的方法)

  2. 創(chuàng)建一個(gè)組件,它可以處理將在第一步中返回查詢模型的查詢(為此使用帶@QueryHandler注釋的方法。

  3. 查詢處理組件應(yīng)該能夠從EventStore. 如果這是基于aggregateIdentifier,請(qǐng)使用該EventStore#readEvents(String)方法。如果需要整個(gè)事件流,需要使用StreamableMessageSource#openStream(TrackingToken)方法(注:EventStore接口實(shí)現(xiàn)StreamableMessageSource

  4. 在處理查詢時(shí),創(chuàng)建一個(gè)AnnotationEventHandlerAdapter,給它一個(gè)新的查詢模型實(shí)例

  5. 對(duì)于您在第 3 點(diǎn)中創(chuàng)建的事件流中的每個(gè)事件,調(diào)用該AnnotationEventHandlerAdapter#handle(EventMessage)方法。此方法將@EventHandler在您的查詢模型對(duì)象上調(diào)用帶注釋的方法

  6. 如果流耗盡,您可以確保您的查詢模型的所有必要事件都已處理。因此,您現(xiàn)在可以返回查詢模型

因此,我再次重申,我不認(rèn)為這過(guò)于瑣碎、容易或快速設(shè)置。此外,第 3 步中有一個(gè)警告?;诰酆蠘?biāo)識(shí)符檢索給定聚合的流非??焖?簡(jiǎn)潔,因?yàn)榫酆贤ǔ](méi)有很多事件。

但是,如果您的查詢模型跨越多個(gè)聚合,則需要基于 a 檢索事件流TrackingToken,這可以確保您拉入整個(gè)事件存儲(chǔ)以動(dòng)態(tài)實(shí)例化您的模型。當(dāng)然,您可以在處理 a 時(shí)微調(diào)您希望事件流從中返回事件的時(shí)間點(diǎn)TrackingToken,但是更改非常高,您將不完整且相對(duì)較慢。

但是,您聲明要檢索給定聚合標(biāo)識(shí)符的事件。因此,我認(rèn)為這在您的場(chǎng)景中應(yīng)該是一個(gè)可行的解決方案。

希望這可以幫助!


查看完整回答
反對(duì) 回復(fù) 2022-12-15
  • 1 回答
  • 0 關(guān)注
  • 112 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)