什么是 Apple 服务器到服务器通知的重试策略
Posted
技术标签:
【中文标题】什么是 Apple 服务器到服务器通知的重试策略【英文标题】:What is retry policy for Apple Server-to-Server Notifications 【发布时间】:2020-06-18 13:12:32 【问题描述】:我正在实现管理 ios 应用程序订阅的服务器端应用程序。 为了在后端控制帐户状态(订阅是否处于活动状态),我使用Apple Server-to-Server Notifications
文档说:
响应服务器到服务器的通知 你的服务器应该发送一个 HTTP 状态码,指示服务器到服务器是否通知 发帖成功:
如果发布成功,则发送 HTTP 200。您的服务器不是必需的 返回一个数据值。
发送 HTTP 50x 或 40x 让 App Store 重试通知,如果 帖子没有成功。 App Store 多次尝试 在一段时间内重试通知,但最终停止 在不断失败的尝试之后。
但如果我这边出现服务器错误,目前尚不清楚苹果遵循哪个重试策略。 我正在寻找以下问题的答案
-
苹果会重试多少次?
重试之间的间隔是多少?
【问题讨论】:
【参考方案1】:正如您所说,Apple 没有在文档中提供明确的答案。但是,来自 Apple WWDC 2019 大会视频:https://developer.apple.com/videos/play/wwdc2019/302/?time=637
“但是,如果您没有返回 200 响应,我们将重试最多 三次重新发送通知给您”
一些手动测试建议他们重试消息一小时。
【讨论】:
【参考方案2】:参考:https://developer.apple.com/documentation/appstoreservernotifications/your_server
收到服务器通知后,如果发布成功,则使用 HTTP 状态代码 200 响应 App Store。如果发布不成功,请发送 HTTP 50x 或 40x 让 App Store 重试通知。
如果 App Store 服务器在初始通知尝试后没有从您的服务器收到 200 响应,它会重试 3 次。 App Store 在首次尝试后的 6、24 和 48 小时后重试。虽然 App Store 服务器通知实时报告状态更改,但您始终可以启动收据验证以获取最新的收据。欲了解更多信息
【讨论】:
您是否在“更多信息...”之后遗漏了什么?【参考方案3】:Apple 将在 3 天内尝试重试 3 次。
【讨论】:
您能分享此信息的来源吗?以上是关于什么是 Apple 服务器到服务器通知的重试策略的主要内容,如果未能解决你的问题,请参考以下文章
将 Azure 表存储的重试策略与 Azure Functions 结合使用