1

各フィード Atom エントリがクライアントのカスタム投稿タイプに保存され、多くの XML フィールドがカスタム フィールドに保存される WordPress で PubSubHubbub Subscriber プロトコルを実装しようとしています。

クライアントによって提起された問題は、次のとおりです。新しいコンテンツを含むハブからの HTTP POST 通知が届くと、サブスクライバー クライアント (WordPress) は、通知を正常に受信したことを通知し、送信のみを試みます。クライアントが通知成功メッセージ ( http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub-core-0.4.html#contentdistribution ) を送信するまで、リクエストを繰り返します。

ただし、何らかの理由でスクリプトが途中で停止した場合、これをどのように処理しますか? どうすれば、そのフィードが再び得られたことを確認できますか? また、50 件ほどの記事が連続して投稿される可能性があるためです。

誰かがこれで私を助けてくれることを願っています。

編集:

うまく表現できなくてすみません。私は主に、WordPress で XML を処理している途中でスクリプトが停止するのを防ぐ方法について心配しています (おそらく、WordPress でキューに入れる方法がわかりません。または、一時的な XML ファイルを保存して破棄します)。最後に)?

4

1 に答える 1

1

まず、PubSubHubbub はオープン プロトコルです。当初は RSS/Atom フィード用に設計されていましたが、現在では完全に不可知です。また、Wordpress フィードであろうと、それをサポートする任意のタイプの RSS フィード (Medium、Blogger... など) であろうと関係ありません。

ここで、通知時に、サブスクライバーは 2XX ステータス コードを応答する必要があります。

加入者のコールバック URL からの成功応答は、HTTP [RFC2616] 成功 (2xx) コードでなければなりません。ハブは、他のすべての加入者応答コードを失敗と見なす必要があります。つまり、サブスクライバーは、サブスクリプションを移動するために HTTP リダイレクトを使用してはなりません。サブスクライバーからの応答本文は、ハブによって無視されなければなりません。ハブは、成功するまで繰り返し通知を再試行する必要があります (妥当な期間にわたって妥当な最大値まで)。サブスクライバーは、できるだけ早く通知に応答する必要があります。成功応答コードは、サブスクライバーによって正常に処理されたという確認ではなく、メッセージの受信のみを示す必要があります。

ご覧のとおり、ハブは障害が発生した場合に再試行する場合があります。したがって、非常に一時的で散発的な問題に対して、少なくともいくらかの余裕があります...とはいえ、スクリプトが途中で停止しないようにする必要があります。

于 2014-12-08T18:45:55.733 に答える