- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
据我所知,OpenCPU 中没有任务模型,也就是说,一个开放的 TCP 连接必须等待任意长的时间,直到请求完成。
任务模型实现的一种可能性是在希望运行函数时立即为 POST
请求返回状态为 200 OK
的专用任务 uri。优点是当作业在后台服务器上运行时,客户端会立即得到结果。
然后客户端将轮询任务 URI,直到它返回 201 created
,这意味着作业已成功完成,或者返回调用不成功的错误代码。在成功的情况下,正文将包含与 POST
现在直接创建的资源列表相同的资源列表。
对该模型或类似方法有何看法?大家是怎么处理的?我认为在没有打开 TCP 连接的情况下支持长时间运行的作业将很有值(value)。我还想到了可选功能,例如在轮询仍在运行的作业时提供进度信息等。
最佳答案
你是正确的,当前版本的 OpenCPU 不包含任务管理器。客户端必须在等待请求完成时保持连接处于事件状态。对于大多数用例,这使 API 保持良好和简单,但对于调度长时间运行的作业来说并不是最佳选择。但是,所有时间限制都是可配置的,因此没有什么可以阻止您等待 30 分钟来完成您的工作。
正如您所建议的,另一种设计是为有效的 POST 请求返回 Accepted 202
,然后让客户端轮询结果的状态。这将是对 API 的一个很酷的补充(也许有一天会被添加),但它在客户端和服务器实现中引入了相当多的复杂性。
在服务器上,您需要编写一个任务管理器,并且可能担心监控、超时和手动终止长时间运行的请求的功能。此外,当函数仍在执行时,R 无法提供太多信息。例如,真的没有办法知道函数调用离完成还有多远。
可能的一件事是捕获中间标准输出,这样您就可以通过定期打印一些状态在 R 函数中实现您自己的进度指示器。然后客户端可以重复检索一些 URL 来读取标准输出并查询请求的状态。但是我怀疑这会有多大用处。我很少在 R 函数中看到进度表(除非 debug=TRUE
或其他),所以我不确定这对于远程调用的 R 函数会有什么不同。
关于opencpu - OpenCPU 中长时间运行作业的任务模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25544546/
据我所知,OpenCPU 中没有任务模型,也就是说,一个开放的 TCP 连接必须等待任意长的时间,直到请求完成。 任务模型实现的一种可能性是在希望运行函数时立即为 POST 请求返回状态为 200 O
我正在尝试使用 opencpu js 从浏览器连接 R。我不能在本地模式下使用 opencpu,我需要它在远程主机上运行,这样我的基于 javascript 的应用程序服务器就可以被多个用户访问,
首先让我承认我是 Docker/opencpu 世界的新手。这是问题。 我在 Windows 10 机器上从 opencpu 站点安装了 Docker。 我能够通过“docker run --name
我目前正在创建一个应用程序,它需要在短时间内运行数百万次统计回归。这些计算的并行化是加速该过程的一种可能性。 OpenCPU服务器似乎不能很好地扩展并行执行的命令。所有命令都按顺序执行。 是否可以产生
嗨,我是编写 R 包的新手。 r package development imports not loaded建议我使用roxygen2。 我曾经打过电话 devtools::document()并生
我很清楚这个事实,这可能不是典型的 SO 问题,但因为这是我所知道的最强大的 R 编程社区和 opencpu 的作者 explicitly encourages to post here ,我试试看:
我使用 OpenCPU 作为表示层来生成一些基于 R 包的绘图。这些图表运行良好,现在用户需要下载用于生成绘图的数据以进行更深入的分析。有可能检索数据吗?是否可以不重复调用那些检索数据的函数(我已连接
如果您使用的是 OpenCPU,您会注意到任何人都可以访问您的 /ocpu/library/[your_library]/R/ 目录并查看您后端应用程序的所有源代码。如何防止这种情况发生? 最佳答案
您好,我想为我的本地 opencpu 开发服务器提供一个简单的功能。 getLinearInterpolatedEstimateQuantil 1 und nur das erste Element
我想使用 OpenCpu 来做基于 Web 的统计应用程序。但是,我在网上看到的文档似乎是矛盾的。对于新手来说,仅仅尝试开始是很困难的。我希望有人知道如何。我在stackoverflow上看到了一些帖
我们想在 OpenCPU 应用程序中显示一个 htmlwidget。该 html 是由 Leaflet 生成的,没有问题,但是我们在 OpenCPU 应用程序中显示它有一些麻烦。我们使用以下函数来生成
最近我被指向http://opencpu.org/ .漂亮的网站,但浏览了一会儿后,我不太确定它在 R 环境中的位置,例如rApache或 RPy2 . 在等待服务器回来很长时间后,我终于能够阅读架构
我没有使用 opencpu 作为服务器的经验,所以我试图在文档中找到这个问题的答案,但没有找到这个问题的任何答案。尽管如此,就许可和身份验证而言,这对我来说似乎是非常基本的,所以我想这是在某处记录的,
对不起,如果这是在其他地方回答,或者需要一个技巧。 我在 ubuntu xenial-16.04 实例上安装了 openCPU。我想延长 timelimit.post /etc/opencpu/ser
我正在尝试从 opencpu 访问安装在用户帐户下的 R 包。当我以该用户身份启动 R 时,我可以看到该软件包已安装: > installed.packages() Packag
我的数据邻接数组是 var g = [[10, 2], [15, 0], [18, 3], [19, 6], [20, 8.5], [25, 10], [30, 9], [35, 8], [40, 5
我正在尝试获取以下资源的 JSON 表示形式: POST http://myserver/ocpu/library/stats/R/smooth.spline/json 我得到的错误是No metho
我使用 RStudio 设置了一个本地 OpenCPU 单用户服务器。我还创建了自己的 R 程序包(程序包名称:test),其中仅包含一个简单的 test.R 文件。源代码是 f1 <- functi
我有一个看起来应该很简单的问题,但它似乎没有在 OpenCPU API 文档中解决。我已经很好地设置和配置了我的 OpenCPU 服务器,我可以浏览 http://localhost/ocpu/tes
我有两台 EC2 机器:master 和 slave。 SSH key 是为用户 ubuntu 生成的,并保存到两台机器上的 ~/.ssh/authorized_keys。因此,我可以像这样以 ubu
我是一名优秀的程序员,十分优秀!