gpt4 book ai didi

ruby-on-rails - 从 Rails 部分迁移到 Phoenix

转载 作者:行者123 更新时间:2023-12-04 03:39:33 25 4
gpt4 key购买 nike

我有一个 Rails 应用程序,我想逐渐将它移动到 Phoenix。当我实现功能时,我希望 phoenix 拦截已经实现的请求,同时将未知请求传递给 Rails 应用程序。在这种情况下,最佳策略是什么?

1) 如果我准备好接受一些开销,我可以创建一个插件并将所有未知请求路由到那里(最后一条路由 /*path)。但是我如何完整地传递请求并返回响应呢?解析它,然后用 HTTPoison 重新构建,这将是不必要的工作,有什么更好的想法吗?

2) 我不确定,如果 haproxy 可行,但旧应用程序可能是后备,如果主后端响应某些错误,请求将被传递。这会减少开销吗?

3) 最后,我可以在 haproxy 中通过掩码拆分请求,但这似乎需要做很多工作,因为我计划使用 Rails 进行 CUD 操作,使用 phoenix 进行 R 获取某些资源。

还有其他选择吗?例子有人是怎么做到的?谢谢!

最佳答案

阅读一篇关于您的确切问题的优秀文章 here .基本思路是使用 gem rails-reverse-proxy为您的 Phoenix 应用程序定义一个代理。

然后,在 Phoenix 上开发您的功能,并添加必要的路由。保持 rails 约定(这是 phoenix router 的工作方式)。

将您的 Rails 应用程序与“虚拟” Controller 连接起来,并将其设置为使用 rails-reverse-proxy .

建议您将 Phoenix 应用程序拥有的所有 ActiveRecord 模型设为只读。通过向 pheonix 拥有的模型添加一个钩子(Hook) after_initialize :readonly!。这样您就可以在 Rails 中使用模型,而不会损害 phoenix 的所有权。只有 Phoenix 应用程序可以更改模型状态。

关于ruby-on-rails - 从 Rails 部分迁移到 Phoenix,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45227054/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com