我有一个rails应用程序可以轻松处理我们目前遇到的流量,除了每天一次,当我们在几秒钟内从外部服务的webhook收到大量ping正在报告过去的交易。目前这导致应用程序由于缺乏数据库连接可用性而超时,这意味着我们丢失了一些webhook以及将网站关闭几秒钟。将这些webhook中包含的数据立即处理起来并不重要,因此我正在寻找一种分散响应的好方法,而不是仅仅为了通过额外的数据库连接功能处理这些突发而进行昂贵的升级。 / p>
是否可以让相关的控制器方法在执行任何会打开数据库连接以展开内容的任何事情之前暂停一小段随机秒数?或者有更好的方法吗?
答案 0 :(得分:1)
设置背景/异步处理系统,如Sidekiq(或任何Heroku提供的)。将控制器操作修改为什么都不做,只是将参数推送到后台作业并返回"确定"。然后在后台处理作业。