我有 20,000 条记录 ScriptDB 的产品信息,我希望每小时更新一次当前的价格/库存信息。就目前而言,我在设计一些不首先达到执行限制的东西时遇到了麻烦。
下载的 stockfile 是可定制的,目前我有它作为 JSON,如:
[
{"sku":"MYSKU1","price":14.99,"qty":2},
{"sku":"MYSKU2","price":22.99,"qty":25},
{"sku":"MYSKU3","price":91.99,"qty":31}
]
目前我做类似的事情:
var prod_feed = UrlFetchApp.fetch("https://www.site.com/myJSONfile").getContentText();
var prod_data = JSON.parse(prod_feed);
var prod_qty = 0, i = 0;
var prod_code = "";
var prod_price = "";
var db = ScriptDb.getMyDb();
var result_array = [];
var result_current = {};
var time_obj = dbDateObject();
for(i = 0; i < prod_data.length; i++) {
var result = db.query({sku: prod_data[i]["sku"]}).next(); // result will be null if no match
if (!result) {
// No match, create new object with this SKU for insertion
result = {};
result["sku"] = prod_data[i]["sku"];
}
result["qty"] = prod_data[i]["qty"];
result["price_default"] = prod_data[i]["price"];
result["last_product_update"] = time_obj;
result_array[i] = result;
}
var results = db.saveBatch(result_array, false);
我可以通过这种方式浏览大约 2,500 条记录,并在达到时间限制之前保存它们。
有什么办法可以直接使用 SKU 作为记录 ID?然后它实际上将是 3 行代码......
var prod_feed = UrlFetchApp.fetch("https://www.site.com/myJSONfile").getContentText();
var prod_data = JSON.parse(prod_feed);
var results = db.saveBatch(prod_data, false);
如果没有,有什么明显的方法可以提高这种效率吗?
谢谢!