-1

有人可以帮我整理一下吗?恐怕我不是太技术,并且已经剪切并粘贴了各种脚本和建议,但仍然超时....

function cleanUp() {
var batchSize = 100 // Process up to 100 threads at once
var delayDays = 10 // Enter # of days before messages are moved to trash
var maxDate = new Date();
maxDate.setDate(maxDate.getDate()-delayDays);
var label = GmailApp.getUserLabelByName("delete me");
var threads = label.getThreads();
for (var i = 0; i < threads.length; i++) {
 if (threads[i].getLastMessageDate()<maxDate)
   {
        threads[i].moveToTrash();
      }
  } 
}
4

1 回答 1

0

第一个要回答的问题是“你有多少线程,标签删除我”?您似乎试图通过使用 batchSize 变量来限制一次工作的线程数,但您没有使用它。要一次处理 100 个标签,您可以稍微修改循环

/* This will work on 100 threads at a time */
for (var i = 0; (i < threads.length) && (i < batchSize) ; i++) {
 if (threads[i].getLastMessageDate()<maxDate)
   {
        threads[i].moveToTrash();
      }
  } 
}

另一方面,我认为您不能直接从Date对象中扣除天数。你可能需要做这样的事情

var ONE_DAY = 24 * 60 * 60 * 1000; //in ms
var delayDays = 10 // Enter # of days before messages are moved to trash
var maxDate = new Date();
var numDays = delayDays * ONE_DAY ; 
maxDate.setTime(maxDate.getTime() - numDays);
于 2013-06-05T10:26:52.840 回答