我编写了一个AdWords脚本,以通过JDBC将效果数据保存到Google Cloud。 不幸的是,该脚本超过了30分钟的最长运行时间,仅保存了大约20%的数据。有没有一种方法可以加快运行速度,并在30分钟的运行时间限制内完成所有产品的流程?
请参阅下面代码的主要部分。 第一段为每个产品ID提取所需的数据。 我相信这部分还可以。 第二段为每个产品ID写入一行。 这可能是问题所在,因为它必须为每种产品每次都建立连接,并且需要很长时间。
while (productGroups.hasNext()) {
var productGroup = productGroups.next();
var productItemId = productGroup.asItemId();
var maxCpc = productItemId.getMaxCpc();
var itemId = productItemId.getValue();
var stats = productItemId.getStatsFor('YESTERDAY');
var averageCpc = stats.getAverageCpc();
var clicks = stats.getClicks();
var impressions = stats.getImpressions();
var conversions = stats.getConversions();
var cost = stats.getCost();
if (itemId || maxCpc) {
var conn = Jdbc.getCloudSqlConnection(dbUrl, user, userPwd); //SQL Connetion starts here
var stmt = conn.prepareStatement('INSERT INTO table1 '
+ '(itemid, date, clicks, impressions, cpc, averageCpc, cost, conversions) values (?, ?, ?, ?, ?, ?, ?, ?)'); //End
stmt.setString(1, itemId);
stmt.setString(2, now);
stmt.setString(3, clicks);
stmt.setString(4, impressions);
stmt.setString(5, maxCpc);
stmt.setString(6, averageCpc);
stmt.setString(7, cost);
stmt.setString(8, conversions);
stmt.execute();
}
}
提前谢谢!