1

我正在尝试使用 WordPress 实现 PubSubHubbub 订阅者协议,其中每个 feed Atom 条目都将保存到客户端的自定义帖子类型中,并将许多 XML 字段保存到自定义字段中。

客户端提出的我不确定的问题是:当来自 Hub 的带有新内容的 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 回答