[英]Resume Cadence Workflow based on signal without blocking the thread
我們想要構建一個工作流,其中包含按該順序執行的以下步驟
Kafka 可能包含與工作流無關的事件,因此我們需要一個單獨的工作流來過濾該特定工作流的事件。
使用 cadence 我打算將它分成兩個工作流程
是否可以在沒有實際阻塞線程的情況下等待工作流1中的信號,以便線程可以同時處理另一個工作流。
我認為對 Temporal/Cadence 的工作方式存在一些誤解。 沒有要求不阻塞線程以使其他工作流能夠取得進展。 Worker 實例處理這種情況沒有問題。
因此,我建議阻止工作流中的線程等待信號,因為這是解決您的業務需求的最簡單方法。
作為旁注,我不明白為什么您需要第二個工作流程。 不需要有一個工作流來過濾 Kafka 事件。 您可以直接在發出第一個工作流信號的 Kafka 使用者中執行此操作。
我有一些編寫 Kafka/Kinesis 消費者的經驗(不與 Cadence 合作,但計划很快這樣做)。 我的感覺是,您只需要阻塞 1 個消費者線程並等待來自 Kafka stream 的新事件。 這個消費者可以住在任何地方,只要它可以與您的 Cadence 系統對話以向工作流程發送信號。 對於每條Kafka消息(過濾掉不相關的),如果可以設計成包含所有信息供消費者決定向哪個工作流發出信號,那將非常簡單。 如果您無法控制消息中的內容(聽起來您有一個現有的流),這是一個小技巧。 您的消費者可能需要根據消息中的其他標識符查找要調用的工作流
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.