微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

on.exit 不工作,但 onStop 在闪亮的工作中使用 unlink 删除缓存的数据

如何解决on.exit 不工作,但 onStop 在闪亮的工作中使用 unlink 删除缓存的数据

我正在缓存一些数据,当我通过单击浏览器窗口中的刷新按钮刷新应用程序时,我想删除这些数据。 onStop() 每次刷新时都会删除数据,但是当我使用 on.exit() 时,我可以看到数据缓存在 /tmp/RtmP*/app_data_xyz*/ 中,并且更多此类 app_data_* 文件不断被添加,但较旧的文件不会被移除。为什么这些具有不同的行为,以及假设我需要专门使用 on.exit(),我如何使用 on.exit() 成功完成此清理工作。我读到 onStop() 等待服务器退出,但 on.exit() 不会。跟这个有关系吗?

server.R with on.exit()

function(input,output,session) {
  cache_dir = tempfile(pattern = 'app_data_')
  on.exit(unlink(cache_dir,recursive = TRUE))
.
.
}

server.R with onStop()

function(input,session) {
  onStop(function() {
    cat("Doing application cleanup\n")
    unlink(cache_dir,recursive = TRUE)
  })
.
.
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。