首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用rsconnect:部署应用程序保证应用程序部署的脚本

使用rsconnect:部署应用程序保证应用程序部署的脚本
EN

Stack Overflow用户
提问于 2020-06-23 16:57:36
回答 1查看 128关注 0票数 0

我可以通过以下方式部署我闪亮的应用程序:

rsconnect::deployApp(appName = 'Test', launch.browser = FALSE, forceUpdate = T)

然而,它并不总是成功地部署应用程序。我计划以预定任务的形式在脚本中运行这个任务,并希望确保deployApp成功完成(如果进程没有成功,请再试一次)。

我想您可以将其放在while循环中,但我不知道如何包含能够识别函数执行成功或失败的脚本。有人有主意吗?

错误信息:

代码语言:javascript
复制
Preparing to deploy application...DONE
Error: $ operator is invalid for atomic vectors
EN

回答 1

Stack Overflow用户

发布于 2020-06-23 17:36:20

正如我在上面的评论中所说,我真的不认为这是一个好主意。安全可靠地做这件事需要做大量的工作。在我看来,你上面引用的错误信息看起来相当“不受控制”,所以我怀疑这更多是因为你的应用程序中的一个问题,而不是发布过程中的一个临时问题。在这种情况下,除非采取措施防止,否则将处于无限循环中。您是否研究过发布记录和远程部署日志告诉您的内容?

尽管如此,如果我必须这样做的话,这就是我的方法。

例如,在全局环境中创建一个标志(例如,FALSE.

  • Write ),并将其设置为FALSE.

  • Wrap --一个函数,onDeploymentFailure() say,它将deploymentFlag设置为在while循环中调用deployAppdeploymentFlag,如

代码语言:javascript
复制
while(!deploymentFlag) {
  deploymentFlag <- TRUE
  rsconnect::deployApp(
    ..., 
    on.failure=onDeploymentFailure, 
    logLevel="verbose", 
    recordDir=<some dir>
  )
  if (!deploymentFlag) {
    ...interrogate the publish record to try to determine what went wrong,
       and correct it if possible...
  }
}

为了安全,尤其是在开发和测试过程中,我会确保每次尝试都编写不同的发布日志,并将尝试的最大次数限制在非常小的数目上:首先是1次,然后是解决了最初问题之后的2次或3次,依此类推。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62539981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档