小编Che*_*mik的帖子

如何在多次失败的 rsync 尝试后查找并删除部分传输的文件

我通过 sshfs(sftp) 启动了一些 rsync,留下了临时文件。有什么办法可以清理这些文件吗?

我不想使用--partial选项运行 rsync,因为有很多大文件并且可能需要很长时间。

我试图通过这种方式找到它们:

find -name ".*.??????"
Run Code Online (Sandbox Code Playgroud)

它找到一些临时文件。但我不能 100% 确定是否有任何文件未使用此模式发现。

这个解决方案足够吗?

linux backup rsync

5
推荐指数
1
解决办法
2380
查看次数

访问电子表格时锁定脚本不起作用

我的问题是如何确保在并发访问时不会丢失任何数据.

我将脚本发布为web-app.我想在DATA_SHEET中添加新行.处理提交按钮的功能如下所示:

function onButtonSubmit(e) {
  var app = UiApp.getActiveApplication();
  var lock = LockService.getPublicLock();
  while (! lock.tryLock(1000))
    ;
  var ssheet = SpreadsheetApp.openById(SHEET_ID);
  var sheet = ssheet.getSheetByName(DATA_SHEET);
  var lastRow = sheet.getLastRow();
  var lastCol = sheet.getLastColumn();
  var rangeToInsert = sheet.getRange(lastRow+1, 1, 1, lastCol);
  var statText = rangeToInsert.getA1Notation();
  rangeToInsert.setValues(<some data from webapp form>);
  app.getElementById('statusLabel').setText(statText);
  lock.releaseLock();
  return app;
}
Run Code Online (Sandbox Code Playgroud)

但似乎这不起作用.当我打开两个表单并在一秒钟内单击"提交"按钮时,它会在statsLabel中显示相同的范围并将数据写入相同的范围.所以我从一个表单中丢失了数据.

这段代码有什么问题?似乎tryLock()不会阻止脚本.

有没有其他方法可以防止对工作表的并发写访问?

concurrency google-apps-script google-spreadsheet-api

2
推荐指数
1
解决办法
1062
查看次数