【发布时间】:2019-09-22 11:56:00
【问题描述】:
这与编程无关,更重要的是基础设施,但在所有交换站点中,StackOverflow 似乎对 RESTful API 部门最了解。
我配置了一个端点来处理可能在 3 分钟窗口内接收多达 1k 个事件的事件。我注意到很多事件“错过了”,但我不确定我是否愿意在没有完全理解的情况下立即指责过度使用。
监听端点是/users/events?user=2345345,其中2345345 是用户ID。从这里我们对该特定用户执行必要的操作,但是如果在此期间下一个用户,2895467 执行的操作导致新事件在第一个可以被处理之前被发送到/users/events?user=2895467。会发生什么?
我打算通过使用celery 来发出信号来减轻这种担忧,这将大大减少这种情况,但是假设在这个单一端点保持同步时可能会错过事件是否公平?
【问题讨论】:
-
这与同时处理来自多个用户的请求的网络服务器没有什么不同。 webhook 没有什么不同。
-
这就是我的假设,如果没有返回 200,有问题的供应商确实会发送重试,所以我想错过的事件实际上必须在供应商身上,否则如果我的服务器没有,他们会重试处理它们。
-
听起来他们的超时时间很短,你的服务器跟不上。