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 (将#修改为@)

相关问答

错误1:Request method ‘DELETE‘ not supported 错误还原:...
错误1:启动docker镜像时报错:Error response from daemon:...
错误1:private field ‘xxx‘ is never assigned 按Alt...
报错如下,通过源不能下载,最后警告pip需升级版本 Requirem...