附加在Google表格API v4中的并发行

时间:2016-10-06 15:05:41

标签: google-sheets google-spreadsheet-api google-sheets-api

我们正在使用 Google表格API v4 来获取和追加工作表中的行。如果同时发送多个附加行请求,则会出现问题。 4个并发请求。有时这些请求会相交,并且一些附加的行会被另一个请求覆盖。例如,如果每个请求只有1行用于追加,并且4个此类请求在同一时刻发送,则只创建3行。在顺序请求的情况下,此问题不会出现。它是否已知问题?是否有任何解决方法我们如何实现并发追加请求不会覆盖行?

对于发送追加请求,我们使用批量更新请求端点:
POST https://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}:batchUpdate

批量更新请求的主体有" appendCells"具有适当附加单元格的属性请求数据:

  1. " sheetId":适当的工作表ID;
  2. " rows":只有一行;
  3. " fields":" *"

2 个答案:

答案 0 :(得分:3)

考虑将values.append API与InsertDataOption.INSERT_ROWS一起使用。每个请求都应该转到自己的新行。

答案 1 :(得分:0)

尝试google apps脚本锁定服务。

function appendRow_(row) {
  // The try / catch statement can be uncommented

  //try {
    var lock = LockService.getPublicLock();
    lock.waitLock(10000);

    Do something

    // Post form results with empty responses in order of item index
    s.appendRow(row);
    lock.releaseLock();
  //} 

  //catch (error) { 
     //Insert your own error handling
     //Logger.log(error);
  //}

  //finally { 
    //lock.releaseLock();
  //}
}