elixir - 阻止/长时间运行的 Phoenix 请求

标签 elixir phoenix-framework

我正在调用 Phoenix 路线的电话,其工作往往需要 10 多秒。这太长了,Phoenix 超时。

这个问题可以通过 websockets 轻松解决,但是我想知道它是如何使用纯 REST 完成的。

什么是 Phoenix 流程模型?是否所有请求都进入工作池,只是即使使用池长时间阻塞也是不明智的?

最佳答案

I would like to know how it's done with plain REST



您可以提高代码的效率,增加网络服务器的超时时间,或者两者兼而有之。

What is the Phoenix process model? Do all requests go to a worker pool



不,请求不会进入工作池。

对于 Web 服务器,Phoenix 当前使用 cowboy .因此,当您点击 Phoenix 端点时,它实际上是在点击底层牛仔实现,这将为您的请求生成一个新的 Erlang 进程。然后由 Erlang 调度程序实际为您的进程提供 CPU 时间。

关于elixir - 阻止/长时间运行的 Phoenix 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42661290/

相关文章:

elixir - 找不到任务 "docs"。您的意思是 "do"吗?

Phoenix 灵药 : Strange "no function clause matching" error in Controller Test

elixir - 运行外迁移时出错

elixir - 如何检查字符串是否是有效的 UUID?

reactjs - 图片未加载但路径正确

Elixir Phoenix LiveView Echart 消失(消失)

erlang - 在使用 :global. whereis_name 之前等待 Node.connect

elixir - 当 Web 服务器应用程序位于伞形应用程序中时,通过早午餐导入 Phoenix Socket、Phoenix HTML JS 模块

struct - 无法扩展结构 - Elixir /Phoenix

elixir - 如何在phoenix框架中使用logger_file_backend记录文件