当您的应用程序第一次启动时,可能还没有任何已检索的事件,也没有保存的分页 Cookie。为获取首批事件,您可通过调用"获取事件"操作,并结合所需的"事件类型"、"起始日期"和"数量限制"参数。例如,仅使用"起始日期"获取特定日期后的所有事件,或使用"数量限制"获取最近的若干事件。您也可以将两者结合,检索特定日期之后的有限数量事件。您还可以设置"每页事件数"参数,指定每次调用服务时需要获取的事件数量。
亚马逊"事件通知 Web 服务"(ENS)将根据您指定的"事件类型"返回一组"事件通知"。在处理完这些事件后,请务必在安全位置保存分页 Cookie,因为您之后需要使用它来继续获取更多事件。如果您使用数据库存储事件数据,最佳做法是在数据库事务内处理并保存所有事件,同时也在提交事务前将分页 Cookie 保存在同一事务上下文中。这样可以确保,即使应用程序在处理事件时发生故障,也能自动回到先前的分页 Cookie 位置,避免丢失或遗漏事件。
如果"存在更多页面"标记被设置为"是",表示还有更多新事件等待检索。这种情况下,您可能会想尽快调用"获取更多"来获取更多事件。不过需要注意,您必须等待分页 Cookie 中指定的"退避时间"过去后,才能进行下一次调用,否则会被拒绝。如果"存在更多页面"标记为"否",则表示暂时没有更多新事件可检索,您需要等待一段时间直至新事件出现。这个时间长短由您决定,但同样需要等待至少"退避时间"过去后才能再次使用分页 Cookie。
当准备调用"获取更多"时,请使用之前调用"获取事件"或"获取更多"时返回的分页 Cookie。您无需保留"使用期限"和"退避时间"字段,但"分页 Cookie"字段必须原封不动地传回给"获取更多"。与"获取事件"一样,"获取更多"也允许您指定"每页事件数"参数,来限制每次调用中接收到的事件数量。
重复上述步骤,使用新获取的分页 Cookie 调用"获取更多",并处理检索到的事件,这样就可以持续获取不断进入系统的新事件。
常见问题 FAQ:
Q: 如何在第一次使用 ENS 时获取事件?
A: 在首次启动应用程序时,可通过调用"获取事件"操作,并设置所需的"事件类型"、"起始日期"和"数量限制"参数来获取第一批事件。
Q: 如何在获取完一批事件后继续获取更多事件?
A: 在处理完一批事件后,请保存好分页 Cookie,然后使用它来调用"获取更多"操作来获取后续事件。同时要注意遵守分页 Cookie 中指定的"退避时间"限制。
Q: 如何确保不会丢失或遗漏任何事件?
A: 最佳做法是在数据库事务内处理并保存所有事件,同时也在提交事务前将分页 Cookie 保存在同一事务上下文中。这样可以确保在应用程序故障时自动回到先前的分页 Cookie 位置,避免丢失或遗漏事件。
Q: 如何确定是否还有更多事件待检索?
A: 检查"获取事件"或"获取更多"返回的"存在更多页面"标记。如果标记为"是",表示还有更多新事件待检索;如果为"否",则表示暂时没有更多新事件可检索。