为什么我们在使用 webhook 时需要队列?
Why do we need a queue when using webhooks?
谁能阐明使用队列的目的是什么?
我的理解是 webhook
只是一个 URL
,你对那个 URL
做了一个 POST
请求,然后根据 URL
做一些事情=19=] 的请求。那么为什么我需要对数据进行排队并将其存储在 database
中,然后再次遍历数据库并执行这些操作。
如果多次调用 webhook 非常接近,您需要一些方法来防止冲突。
不过,它不一定是队列。如果 webhook 执行数据库查询和更新,您可以使用事务来确保每次调用都是原子的。
在这方面,它与任何其他 Web 实用程序没有什么不同。您应该在处理 Web 表单的脚本中做类似的事情。
简短的回答是,您不必使用队列。 Webhook 只是一个 HTTP 请求(通常为 POST),通知您的应用程序发生了某种类型的事件。您可能想要考虑队列的原因是您可能 运行 遇到的典型问题。
其中一个原因是返回到 webhook 请求者的响应时间(来源)。许多来源希望尽快得到响应(HTTP 状态 200),以便他们可以将请求从他们的 webhook 系统中取出。如果处理 webhook 需要一些时间,消息来源通常会建议您使用队列来延迟较长的进程异步到对 webhook 的 200 响应。
另一个可能的原因是删除重复的请求。使用 webhook 无法保证您每次事件只会收到一个请求。可以使用队列来删除这些请求。
我建议您尽可能使用简单的请求处理程序,如果您 运行 遇到问题,则发展更复杂的处理程序。如果您 运行 遇到上述问题,请考虑将队列作为一种潜在的设计方法。
谁能阐明使用队列的目的是什么?
我的理解是 webhook
只是一个 URL
,你对那个 URL
做了一个 POST
请求,然后根据 URL
做一些事情=19=] 的请求。那么为什么我需要对数据进行排队并将其存储在 database
中,然后再次遍历数据库并执行这些操作。
如果多次调用 webhook 非常接近,您需要一些方法来防止冲突。
不过,它不一定是队列。如果 webhook 执行数据库查询和更新,您可以使用事务来确保每次调用都是原子的。
在这方面,它与任何其他 Web 实用程序没有什么不同。您应该在处理 Web 表单的脚本中做类似的事情。
简短的回答是,您不必使用队列。 Webhook 只是一个 HTTP 请求(通常为 POST),通知您的应用程序发生了某种类型的事件。您可能想要考虑队列的原因是您可能 运行 遇到的典型问题。
其中一个原因是返回到 webhook 请求者的响应时间(来源)。许多来源希望尽快得到响应(HTTP 状态 200),以便他们可以将请求从他们的 webhook 系统中取出。如果处理 webhook 需要一些时间,消息来源通常会建议您使用队列来延迟较长的进程异步到对 webhook 的 200 响应。
另一个可能的原因是删除重复的请求。使用 webhook 无法保证您每次事件只会收到一个请求。可以使用队列来删除这些请求。
我建议您尽可能使用简单的请求处理程序,如果您 运行 遇到问题,则发展更复杂的处理程序。如果您 运行 遇到上述问题,请考虑将队列作为一种潜在的设计方法。