问题描述
我在Google Sheet api的batchupdate函数中需要一些帮助。当前,在我的项目中,我正在做一些处理,并调用我的createEntry函数,以便使用如下所示的append函数将味精添加到gsheet上的特定单元格中。我意识到每次调用都会增加我的API调用请求配额,Google api也会停止运行,因此程序也随之停止。
要解决此问题,我想我将数据存储在2D数组中,并使用batchUpdate更新所有oneshot到最后,以避免超过每100秒和Google API设置的每个用户的用户请求数。
我的问题是:
-
在使用batchupdate解决用户对Google API问题的请求时,我的逻辑是否正确(请记住,我稍后可能会在6列中添加数千个数据)?
PS:我已经尝试过每插入20次左右线程使线程进入睡眠状态20秒钟,但这不能解决问题,因为它是不可预测的。有时我最多可以存储400个单元格的数据,有时它只能停在70个位置。
-
如果是,我如何批量更新在一系列单元格中插入各种数据点?
我当前正在使用的代码是-
public void CreateEntry(string col,int ctw,string msg)
{
var range = $"{sheet}!" + col.ToString() + ctw.ToString();
var valueRange = new ValueRange();
var oblist = new List<object>() { };
oblist.Add(msg);
valueRange.Values = new List<IList<object>> { oblist };
var appendRequest = service.Spreadsheets.Values.Append(valueRange,SpreadsheetId,range);
appendRequest.ValueInputOption = SpreadsheetsResource.ValuesResource.AppendRequest.ValueInputOptionEnum.USERENTERED;
var appendReponse = appendRequest.Execute();
}
一个简单的gsheet数据点示例以供参考-
截至目前,从上面的代码中可以看到,我正在分别编写每个单元格。我现在想添加所有oneshot以避免Google超过每100秒的用户请求数。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)