0

これは、ユーザーが複数の画像を追加できる RSS フィード (A) ですが、別のユーザーからの RSS フィード (B) を画像とともに追加することもできます。フィード (A) を要求すると、サーバーはフィード (B) をフェッチし、フィードからの画像が要求されたフィード (A) に追加されます。

無限循環再帰を防ぐメカニズムまたはオプションは何ですか?
例:飼料(B)に飼料(A)も含まれる場合

// Feed A setup
// - image1a
// - image2a
// - feed-B

// Feed B setup
// - image1b
// - feed-A

// fetching / assembling feed A
// - image1a
// - image2a
// - (A fetches feed-B)
// - image1b
// - (B fetches feed-A)
// - image1a
// - image2a
// - (fetched A fetches feed-B again)
// - image1b
// - (second B fetches feed-A again)
// .. recursion
4

2 に答える 2

1

結局のところ、解決策はいくつかの段階にあります。

1 ロック: 要求に応じて、キャッシュされた XML のコピーを返します。フィード XML の構築中に、ロックを設定します。これにより、このフィードを取得している外部フィードが 2 番目の新しいビルドをトリガーするのを防ぎます。外部フィードは、キャッシュされた XML のみを受け取ります。

2 アイテムの識別: ロックは暴走する可能性のあるプロセスを停止しますが、フィード XML は、以前にキャッシュされた XML アイテムを使用して、要求ごとに大きくなります。重複を防ぐには、フィードの一意の識別子を各「guid」フィールドに追加します。項目がフィード独自のものである場合は、それを含めずにメッセージをログに記録します (必要に応じて通知します)。

于 2013-05-08T15:20:49.567 に答える