The following Google Script is timing out at 30 minutes (I'm in the EAP). How could I make it faster, or how can I make it so it processes in batches and can get done in 30 minutes? The intent of the script is to make the revisions permanent in files modified in the last 30 days.
function setRevisionPermanent() {
var rateLimit = 200;
var today = new Date();
var oneYear = new Date(today.getTime() - 365 * 24 * 60 * 60 * 1000);
var oneMonth = new Date(today.getTime() - 30 * 24 * 60 * 60 * 1000);
var startTime = oneMonth.toISOString();
var search = '(trashed = false) and (modifiedDate > "' + startTime + '")';
var files = DriveApp.searchFiles(search);
while (files.hasNext()) {
var file = files.next();
var fileName = file.getName();
var fileId = file.getId();
try {
var revisions = Drive.Revisions.list(fileId).items;
for (var i = 0 ; i < revisions.length ; i ++) {
var rclone = revisions[i];
rclone.pinned = i < revisions.length - rateLimit ? false : true;
var request = Drive.Revisions.update(rclone, fileId, revisions[i].id);
}
} catch (e) {
Logger.log(e.message);
}
}
}