问题标签 [plumber]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
252 浏览

r - fwrite 是否锁定文件以同时读取

我想使用 data.table::fwrite 以文本日志的形式快速存储和检索状态。这些是通过移动应用程序更新的,该应用程序使用管道工 API 调用 R 端点。移动应用程序每秒可能会触发许多 API,并且同一行有可能在大约 0.5 秒的间隙内被两个 API 修改。由于每次 API 调用延迟 1~2 秒,我正在避免 DB 读写(R 的 fwrite 第一次可以在 0.5 秒内完成相同的工作,然后在随后的调用中在不到 20 毫秒的时间内完成 API)

我的问题是:

fwrite/fread 组合是否适用于更高的流量场景,还是我必须寻找锁定文件的方法以避免损坏?是否有任何方法可以锁定文件以进行读取或写入?

0 投票
0 回答
524 浏览

r - R Package Plumber:二进制 POST 正文无法正常工作

我测试了在 POST 请求中附加一个 STL 文件作为正文。配置:Windows 10、Postman(POST->二进制)、R 3.4.2。POST 请求的 R 代码如下所示:

其输出与使用以下方法对 STL 文件进行直接二进制读取相同:

但是,如果使用 Plumber 版本(上图),则会缺少一些部件。我认为原因可能是处理或引入行尾的方式,或者管道工的默认过滤器。

缺失值出现在 req$postBody 的元素之间:例如 while rawData2hold [a, b, c, d, e, f, g],rawData1hold [a, b, e, f]。上面函数中的 R 对象rawstl的长度 > 1 并且缺失值出现在那里的子列表之间。

我玩了一段时间,但我不知道是什么坏了。

0 投票
1 回答
378 浏览

r - 通过 rsconnect 部署管道工 API(未找到处理程序)

我有一个包含示例 API 函数 ( testAPI.R) 的目录:

rsconnect::deployAPI()函数想要指向一个目录,其中包含一个名为plumber.R返回plumb对象的文件。所以我plumber.R在目录中的文件为:

然后调用rsconnect::deployAPI()目录...

它部署没有错误,但似乎没有找到处理程序: swagger 页面的屏幕截图

0 投票
0 回答
151 浏览

r - 如何改变R管道工的环境?

我在使用管道工时遇到问题,当我“检查”我的代码时,我的所有 data.tables 在每组操作后都重置为 data.frame。

我认为问题可能是由于环境造成的。我尝试在铅锤函数中使用 envir 参数,但似乎没有任何效果。

我已经尝试过两种版本的水管工(CRAN repo 和 Github)。任何帮助/指示将不胜感激,在此先感谢!

PS 该代码无需管道工即可正常工作。

0 投票
1 回答
1472 浏览

r - 在 Rscript 中使用管道工包并从 cmd 运行脚本

在我的 Rscript (run.R) 中:

如果我使用 RStudio 或 R 控制台运行上述代码,它工作正常,并在以下输出后让我访问:

启动服务器以侦听端口 8000 在 http://127.0.0.1:8000/swagger/处运行swagger UI

但是当我尝试使用 Rscript, R CMD BATCH,R < run.R, pm2 运行与 .R 文件相同的代码时,它会卡在;

启动服务器监听 8000 端口

在访问地址时,我得到 404: Resource Not Found Error。另外,请注意,我想在 Windows 上运行它,因此没有尝试更小。任何想法,我在这里做错了什么。谢谢!

0 投票
2 回答
941 浏览

r - Plumber R, changing 'localhost' to local machine IP as test

I have an R script which is outputs values through an API using Plumber, all runs fine on my local machine (windows 10) when using a 127.0.0.1 or localhost address in the browser, but if I change to use my machines actual IP the browser throws a 'refused to connect' error( I'm running this as a test, before moving everything onto a networked server). Any ideas if this should work? the literature seems to suggest it should...or any tips on what might be preventing this from working?

thanks

0 投票
1 回答
469 浏览

cors - 在管道工中使用 CORS 请求设置 cookie

处理 cors 连接时是否可以在管道工中设置 cookie?

我有一个角度应用程序(比如在 localhost:4200 上运行)和管道工 api(比如在 localhost:8000 上),只是尝试使用文档中的示例代码:

我在 rooter 上注册了 sessionCookie() 钩子,所以当我在浏览器中访问 localhost:8000/sessionCounter 时这有效,但不是从 Angular 应用程序。

我在这里缺少任何设置吗?

我只是res$setHeader("Access-Control-Allow-Origin", "http://localhost:4200")为服务 cors 请求而添加的,我还需要别的吗?

0 投票
1 回答
864 浏览

r - 用于在 R 中创建 Web 服务的 OpenCPU 或 Plumber?

我正在尝试为 My R Script 创建一个 Web 服务,该服务将 CSV 作为输入并对其进行分析,然后将其返回。我是一个完全的初学者,并且发现了几种方法可以使用 OpenCPU 或 Plumber。选择其中一个有什么优势吗?

0 投票
1 回答
1089 浏览

r - 在 Docker Plumber 中使用 R 预测包

我正在尝试为使用预测库的 R 脚本构建 docker 映像。我的 Dockerfile 看起来像这样:

Plumber.R 非常简单,包含在第一行库(预测)中。没有预测,一切都很好,我可以运行容器。在上面的 dockerfile 和 Plumber.R 中添加预测时,容器的执行会停止:

启动期间 - 警告消息:1:在库中(包,lib.loc = lib.loc,character.only = TRUE,logical.return = TRUE,:没有名为“预测”的包 2:选项中的包“预测” ("defaultPackages") 未找到 pr <- plumber::plumb(commandArgs()[4]); pr$run(host='0.0.0.0', port=8000) 库中的错误(预测):没有名为'forecast'的包调用:... -> source -> withVisible -> eval -> eval -> library 另外:警告消息:在 readLines(file) 中:在 'Plumber.R' 上找到不完整的最后一行 执行停止

知道是什么问题吗?对于所有其他包/库,它只能预测会造成麻烦。提前谢谢了

0 投票
1 回答
1497 浏览

json - 如何使用 R 中的 Plumber 使用 JSON 对象数组

我最近一直在用 R 中的 Plumber 进行试验,并且当我使用 POST 请求传递以下数据时取得了成功;

这使我可以编写如下函数来返回数据。

但是,当我尝试发布 JSON 对象数组时,我似乎无法通过该函数访问数据

我收到以下错误

有谁知道 Plumber 如何解析 JSON?我不确定如何访问字段并将其分配给向量以对数据进行评分。

提前致谢