Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 管道工的基本问题_R_Plumber - Fatal编程技术网

R 管道工的基本问题

R 管道工的基本问题,r,plumber,R,Plumber,我是R管道工的新手,R管道工是一个REST服务器,可以将R函数作为RESTAPI公开 我想提出以下问题: R管道工服务器是否足够强大,可以在生产环境中采用 该函数作为restapi公开,如果该函数执行复杂且耗时的逻辑,如何设置超时以保持连接活动 水管工支持多少并发请求 (偏见:我是《水管工》的作者) R管道工服务器是否足够强大,可以在生产环境中采用 管道工还年轻,但我知道现在有很多人在生产中使用管道工。下面是一个这样的例子: 该函数作为restapi公开,如果该函数执行复杂且耗时的逻辑,如何设置

我是R管道工的新手,R管道工是一个REST服务器,可以将R函数作为RESTAPI公开

我想提出以下问题:

  • R管道工服务器是否足够强大,可以在生产环境中采用
  • 该函数作为restapi公开,如果该函数执行复杂且耗时的逻辑,如何设置超时以保持连接活动
  • 水管工支持多少并发请求
  • (偏见:我是《水管工》的作者)

  • R管道工服务器是否足够强大,可以在生产环境中采用
  • 管道工还年轻,但我知道现在有很多人在生产中使用管道工。下面是一个这样的例子:

  • 该函数作为restapi公开,如果该函数执行复杂且耗时的逻辑,如何设置超时以保持连接活动
  • 目前没有一种方法可以强制特定端点超时。API作者需要确保函数保持足够的轻量级,以便能够在合理的时间内返回。否则,您可能需要启动一个单独的进程来处理一个长时间运行的任务,以便能够快速响应传入的请求

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


    解决方案是并行运行多个R进程,并对这些进程的传入流量进行负载平衡。更多的讨论:还有一个解决方案:

    谢谢@Jeff Allen的精彩回答。现在我对水管工的工作原理有了更清楚的了解。对于#3,解决方案似乎是使用Nginx+多个水管工实例的负载平衡。比如说,10个实例,看起来有10个请求将被同时处理,其他更多的请求将被排队,您知道如何使用oAuth保护管道API吗?