关于R管道工的基本问题

时间:2017-06-21 12:48:14

标签: r plumber

我是R管道工的新手,这是一个REST服务器,可以将R函数公开为其余的API。

我会问以下问题:

  1. R管道服务器是否足够强大,可以在生产环境中采用?
  2. 该函数,作为rest api公开,如果该函数执行复杂且耗时的逻辑,如何设置时间以保持连接活动?
  3. R管道工支持多少个并发请求?

1 个答案:

答案 0 :(得分:9)

(偏见:我是管道工的作者)

  
      
  1. R管道服务器是否足够强大,可以在生产环境中采用?
  2.   

水管工还很年轻,但我知道现在有多个人在生产中使用水管工。这是一个这样的例子的写作:https://www.mango-solutions.com/blog/production-r-at-ons

  
      
  1. 该函数,作为rest api公开,如果该函数执行复杂且耗时的逻辑,如何设置时间以保持连接活动?
  2.   

目前还没有办法在特定端点上强制超时。只有API作者才能确保功能保持足够轻量级,以便能够在合理的时间内返回。否则,您需要启动一个单独的进程来处理长时间运行的任务,以便您可以快速响应传入的请求。

  
      
  1. R管道工支持多少个并发请求?
  2.   

单线程中的R,所以在任何给定时刻它只能做一件事(没有特殊的解决方法)。对于水管工来说也是如此。在单个R进程中运行的Plumber API在任何给定时刻只能执行一个函数/端点。其他传入请求将排队,直到R进程准备好开始处理它们。

解决方案是并行运行多个R进程,并将传入流量负载均衡到这些进程。还有一些讨论:https://plumber.trestletech.com/docs/hosting/和解决方案:https://plumber.trestletech.com/docs/docker-advanced/