我正在尝试使用WordPress实现PubSubHubbub订阅者协议,其中每个Feed Atom条目将保存到客户端的自定义帖子类型中,并且许多XML字段都保存到自定义字段中。
客户端提出的问题我不确定是:当来自具有新内容的集线器的HTTP POST消息进入时,订户客户端(WordPress)将通知它已成功接收通知并且仅将尝试再次发送请求,直到客户端发送通知成功消息(http://pubsubhubbub.googlecode.com/svn/trunk/pubsubhubbub-core-0.4.html#contentdistribution)。
但是,如果由于某种原因,脚本停在中间,你会如何处理?你怎么能确保它再次得到那个?也因为连续发布了50篇文章。
希望有人能帮助我。
编辑:
抱歉,我表达的不太好。我主要关注的是如何能够保护自己免受脚本停止在WordPress中处理XML的过程(可能在WordPress中排队,我不知道该怎么做,或者保存临时XML文件并丢弃在最后)?
答案 0 :(得分:1)
首先,PubSubHubbub是一个开放协议。虽然它最初是为RSS / Atom提供的,但它现在完全不可知。它是否与Wordpress提要或支持它的任何类型的RSS提供无关紧要(媒体,Blogger等)。
现在,在收到通知后,订阅者应该回复2XX状态代码:
订阅者回调URL的成功响应必须是 HTTP [RFC2616]成功(2xx)代码。枢纽必须考虑所有其他 用户响应代码为失败;这意味着订户不得 使用HTTP重定向来移动订阅。响应机构来自 用户必须被集线器忽略。 集线器应该重试 反复通知直到成功(达到一些合理的 在合理的时间段内最大值)。订阅者应该回应 尽快通知;他们的成功响应代码 应该只表示收到消息,而不是确认 它已被订户成功处理。
如您所见,集线器可能会在发生故障时重试。所以,你至少有一些余地用于非常临时和零星的问题......那就是说,你应该确保你的脚本不会在中间停止。