递归 Webhook ID
Recurly Webhook ID
我试图防止 Recurly Webhooks 在重试错误时被多次执行(即:当构建失败并且服务器偶尔超时时)。我在仪表板中看到 Webhook 具有唯一 ID,但这些 ID 似乎无法在消息哈希中访问,我是否遗漏了什么?我正在使用 Rails 的价值。
<?xml version="1.0" encoding="UTF-8"?>
<updated_subscription_notification>
<account>
<account_code>1</account_code>
<username nil="true"></username>
<email>verena@example.com</email>
<first_name>Verena</first_name>
<last_name>Example</last_name>
<company_name nil="true"></company_name>
</account>
<subscription>
<plan>
<plan_code>1dpt</plan_code>
<name>Subscription One</name>
</plan>
<uuid>292332928954ca62fa48048be5ac98ec</uuid>
<state>active</state>
<quantity type="integer">1</quantity>
<total_amount_in_cents type="integer">200</total_amount_in_cents>
<activated_at type="datetime">2010-09-23T22:12:39Z</activated_at>
<canceled_at nil="true" type="datetime"></canceled_at>
<expires_at nil="true" type="datetime"></expires_at>
<current_period_started_at type="datetime">2010-09-23T22:03:30Z</current_period_started_at>
<current_period_ends_at type="datetime">2010-09-24T22:03:30Z</current_period_ends_at>
<trial_started_at nil="true" type="datetime">
</trial_started_at>
<trial_ends_at nil="true" type="datetime">
</trial_ends_at>
<collection_method>automatic</collection_method>
</subscription>
</updated_subscription_notification>
Webhook 可能会停用多次,但是一旦您的服务器收到成功的状态代码,Recurly 将停止尝试重新发送该通知。因此,每个事件只会传送一个 webhook。此外,webhook ID 不包含在消息哈希中,它们仅在 UI.
中找到
不幸的是,阻止重新发送 webhook 的唯一方法是在 5 秒内回复 200 状态代码。(https://docs.recurly.com/docs/webhooks)
原来是 30 秒,但我认为在 2015 年 11 月有所改变。
无论如何,我通过将消息扔到队列并立即响应 200 响应来解决它。
我试图防止 Recurly Webhooks 在重试错误时被多次执行(即:当构建失败并且服务器偶尔超时时)。我在仪表板中看到 Webhook 具有唯一 ID,但这些 ID 似乎无法在消息哈希中访问,我是否遗漏了什么?我正在使用 Rails 的价值。
<?xml version="1.0" encoding="UTF-8"?>
<updated_subscription_notification>
<account>
<account_code>1</account_code>
<username nil="true"></username>
<email>verena@example.com</email>
<first_name>Verena</first_name>
<last_name>Example</last_name>
<company_name nil="true"></company_name>
</account>
<subscription>
<plan>
<plan_code>1dpt</plan_code>
<name>Subscription One</name>
</plan>
<uuid>292332928954ca62fa48048be5ac98ec</uuid>
<state>active</state>
<quantity type="integer">1</quantity>
<total_amount_in_cents type="integer">200</total_amount_in_cents>
<activated_at type="datetime">2010-09-23T22:12:39Z</activated_at>
<canceled_at nil="true" type="datetime"></canceled_at>
<expires_at nil="true" type="datetime"></expires_at>
<current_period_started_at type="datetime">2010-09-23T22:03:30Z</current_period_started_at>
<current_period_ends_at type="datetime">2010-09-24T22:03:30Z</current_period_ends_at>
<trial_started_at nil="true" type="datetime">
</trial_started_at>
<trial_ends_at nil="true" type="datetime">
</trial_ends_at>
<collection_method>automatic</collection_method>
</subscription>
</updated_subscription_notification>
Webhook 可能会停用多次,但是一旦您的服务器收到成功的状态代码,Recurly 将停止尝试重新发送该通知。因此,每个事件只会传送一个 webhook。此外,webhook ID 不包含在消息哈希中,它们仅在 UI.
中找到不幸的是,阻止重新发送 webhook 的唯一方法是在 5 秒内回复 200 状态代码。(https://docs.recurly.com/docs/webhooks)
原来是 30 秒,但我认为在 2015 年 11 月有所改变。
无论如何,我通过将消息扔到队列并立即响应 200 响应来解决它。