有没有一种方法可以指定具体的Heroku dyno处理特定URL的请求?

3
我的应用程序中有一个URL,我从第三方服务器接收POST HTTP请求。 我希望只有一个dyno来处理它,以简化同步。
在Heroku中有一种方法可以将单个dyno分配给特定的URL吗?
我的设置:Heroku(bamboo堆栈),10个dynos,Ruby on Rails 3.2
2个回答

1
当您向应用程序发出POST请求时,将从Web dynos中随机选择一个dyno。您无法选择要选择的正在运行的dyno。为什么要选择特定的dyno呢?如果这样做,感觉您可能会在扩展和处理故障方面遇到困难。

我使用队列(Ruby的构造)来聚合帖子事件,并且我更喜欢在单个dyno中使用单个队列,而不是使用多个队列或将事件保存在存储中。 - MikeMarsian
1
我明白了。我建议使用外部队列——一个带有后备服务的队列。这样,您可以有多个工作 dynos 听取它。我怀疑这种方法最终会更好地扩展。最近,我整理了一个小例子,或许对您有帮助:https://github.com/jonmountjoy/queue_classic_demo - Jon Mountjoy
谢谢@Jon Mounjoy,看起来很有趣,我会去看看。 - MikeMarsian
为什么?因为一个专门用于管理员功能的动力单元和一个专门用于物联网功能的动力单元是非常合理的选择。 - jpro

1
你不应该设计应用程序以依赖某种类型的请求始终命中同一个 dyno。不要在临时存储(即文件系统或一个 dyn0 的内存)中构建状态,而是将其存储在对运行应用程序的所有 dynos 都可访问的安全位置。

我不想要“总是相同”的dyno,我只想要“始终只有一个dyno”,随便选择一个都可以。 - MikeMarsian

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接