私はrabbitMQのイベントのストリームを
Event: {id, type, timestamp}
のように表示しています。
値は次のとおりです。
id
:いくつかのユニークな文字列
type
:(a)のrrive /(d)は、私が(出発予定イベントに私が到着したイベントと一致するイベントの新しいストリームを生成したい開始イベントと終了イベントを無限ストリームからどのように関連付けるのですか?
をepart連続する)。
id | type | time
1 | a | 0
1 | d | 1
2 | a | 2
3 | a | 3
3 | d | 4
1 | a | 5
2 | d | 6
1 | d | 7
はIタイプCorrelated:{id, duration}
の新しいストリーム生成する:同じIDを持つイベントがイベントのストリーム所与例えばので を表示することができduration
は、2つの相関イベントからのタイムスタンプの差がある を
id | duration
{1, 1}
{3, 1}
{2, 4}
{1, 1}
受信ストリームをIDでグループ化できましたが、イベントの関連付けに関するドキュメントを見つけられませんでした。私はこのように、期間を計算するために、groupBy
後、あなただけの逸脱を考慮し、連続したイベントを組み合わせることfilter
をpairwise
を使用してmap
でき到着は出発の前にあると仮定するとRxJS
だから 'length'は本当に' duration'ですか?すなわち、到着時刻と出発時刻との間の差異である。 – cartant
はい、私はこの点を明確にするために質問を編集しました。 –
特定のIDに対して複数の到着と出発がある場合は、実際にそのIDをサンプルデータに含めることで、それを明確にする必要があります。 – cartant