OpenCPU服务器请求

时间:2017-03-09 14:28:10

标签: r opencpu

我正在开发一个应该与某些R脚本交互的Web应用程序,我非常想使用openCPU。但是,除了调用R脚本或获取结果之外,我不知道是否有任何方法可以执行其他AJAX请求。

我需要发送R脚本描述和其他可以更改的内容,因此必须在运行时通过对服务器的请求来完成。

如果有人愿意简要解释这是否可行,我将非常感激。

1 个答案:

答案 0 :(得分:0)

我假设当你说更新描述时,你的意思是描述R文件包定义的描述文件。更改此脚本或R脚本的内容时,您需要将新版本发布到Open CPU。我的经验中的一些注释,与您的相似:

  1. 我在OpenCPU安装包内部运行的脚本遇到了一些麻烦,这些安装包在CRAN中但在OpenCPU包列表中不可用。 OpenCPU可以使用devtools包中的install_github函数从Github中提取包。如果您的脚本使用公共OpenCPU不具备的R功能,则可能必须使用install.packages在R脚本中手动安装。如果调用库或install.packages本身不起作用,这可能会有所帮助。

    library('devtools')
    
    install.packages("BIOMASS", repos = "https://cran.opencpu.org", method = "libcurl")
    library("BIOMASS")
    
  2. 公共OpenCPU上安装的软件包列表为here如果您使用的是CRAN上可用的其他软件包,则需要在R软件包描述文件的“导入”部分中将其添加为依赖项。您还可以使用命名空间来避免在脚本中使用PACKAGENAME :: FUNCTIONNAME。

    1. 如果您向公众OpenCPU发布,则只能更新您的包once every 24 hours
    2. 我发现有用的管道是开发我的软件包,在本地编写一些使用它的测试代码,一旦我相当自信,就把它推送到我的github存储库。在这里,我有webhook setup将新包发布到公共OpenCPU实例。根据您的开发环境设置方式,您可以手动发布它。例如,如果您托管自己的OpenCPU实例,将它发布到您的实例而不是公共实例会更有意义。
    3. OpenCPU API文档中的相关部分是它讨论R Package API的地方。如果您要托管自己的OpenCPU,server manual中还有关于如何安装软件包的文档。
    4. 如果您碰巧使用Meteor,我的经验是最好直接调用OpenCPU中的ReSTful / HTTP API。 Javascript客户端软件包在Meteor中对我没有用,HTTP API工作得很好。