当前位置: 首页 > 知识库问答 >
问题:

Google Sheets API v4中的并发行追加

费子濯
2023-03-14

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

对于发送追加请求,我们使用批处理更新请求终结点:
POSThttps://sheets.googleapis.com/v4/spreadsheets/{spreadsheetId}: batchUpdate

批量更新请求的主体具有“appendCells”属性,并具有适当的appendCells请求数据:

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

共有2个答案

欧阳俊逸
2023-03-14

尝试谷歌应用程序脚本锁定服务。

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();
  //}
}
司徒高丽
2023-03-14

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

 类似资料:
  • 并发(Concurrently)和并行(Parallel)是两个不同的概念。借用Go创始人Rob Pike的说法,并发不是并行,并发更好。并发是一共要处理(deal with)很多事情,并行是一次可以做(do)多少事情。 举个简单的例子,华罗庚泡茶,必须有烧水、洗杯子、拿茶叶等步骤。现在我们想尽快做完这件事,也就是“一共要处理很多事情”,有很多方法可以实现并发,例如请多个人同时做,这就是并行。并行

  • 问题内容: 我正在使用ajax提交包含数组,文本字段和文件的多部分表单。 我将每个VAR附加到主数据中 然后我使用ajax函数将其发送到PHP文件以存储在sql DB中。 但是在PHP方面,变量(即数组)显示为字符串。 当我不使用ajax作为表单数据发送它,而是使用简单的选项时,确实在PHP端将它作为数组获得,但是后来我也无法发送文件。 有什么办法吗? 问题答案: 您有几种选择: 将其转换为JSO

  • 在讲解并发概念时,总会涉及另外一个概念并行。下面让我们来了解并发和并行之间的区别。 并发(concurrency):把任务在不同的时间点交给处理器进行处理。在同一时间点,任务并不会同时运行。 并行(parallelism):把每一个任务分配给每一个处理器独立完成。在同一时间点,任务一定是同时运行。 并发不是并行。并行是让不同的代码片段同时在不同的物理处理器上执行。并行的关键是同时做很多事情,而并发

  • 是这种格式,在后端,我只在请求中获得格式。我还需要发送“original_file_name”和“function_name”属性。当然,我可以将数组分成3个部分并分别追加它们,但是有没有办法将每个mediasData数组索引的所有there属性发送到formdata数组各自的索引中?

  • 我使用了以下格式的输入数据: 我已经使用以下代码段使用多线程将RDD保存为文本文件: 在本例中,我遇到了以下例外情况

  • 9.3.1 串行、并发与并行 计算机执行程序时,如果采用按顺序执行的方式,即仅当一个程序执行完毕,下一个程序才能开始执行,则称为串行(serial)执行。在串行执行方式下,CPU 每次由一个程序独 占使用,只要当前程序还没有结束,下一个程序就不能使用 CPU。这就像排队买东西,营 业员(即 CPU)每次只为一个顾客服务,等前面的顾客走了,后面的顾客才能获得服务。 串行执行方式有一个缺点,即 CPU