任何人都可以阐明使用队列的目的是什么吗?
我了解的是,new RegExp('['+arr[1]+']', 'gi').test(arr[0]);
只是一个webhook
,您对此URL
进行了POST
请求,然后根据正文/数据进行了一些处理的请求。那么,为什么我需要对数据进行排队并将其存储在URL
中,然后再次遍历数据库并执行这些操作。
答案 0 :(得分:1)
如果Webhook非常紧密地多次调用,则您需要一些防止冲突的方法。
尽管不一定要排队。如果webhook执行数据库查询和更新,则可以使用事务确保每次调用都是原子操作。
在这方面,它与任何其他Web实用程序没有什么不同。您应该在处理Web表单的脚本中执行类似的操作。
答案 1 :(得分:1)
简单的答案是,您不必使用队列。 Webhook只是一个HTTP请求(通常为POST),用于向您的应用程序通知某种事件。您可能要考虑排队的原因是由于您可能遇到的典型问题。
其中之一是由于响应时间回到了Webhook请求者(源)。许多来源都希望尽快获得响应(HTTP状态200),以便他们可以从Webhook系统中将请求出队。如果处理Webhook需要花费一些时间,则消息来源通常会建议您使用队列来推迟与Webhook的200响应异步的冗长过程。
另一个可能的原因可能是删除重复的请求。对于Webhooks,不能保证每个事件只会收到一个请求。队列可用于重复删除这些请求。
如果可能的话,我建议您坚持使用简单的请求处理程序,然后在遇到问题时使用更复杂的处理程序。如果遇到上述问题,请考虑将队列作为一种潜在的设计方法。