Google 앱 스크립트에는 프로그래밍 오류라고 의심되는 긴 루프를 방지하는 메커니즘이 내장되어 있습니까? 내가 요청하는 이유는 Gmail을 제어하기 위해 만드는 Google 앱 스크립트가 있다는 것입니다. 최대 실행 시간 오류를 피하기 위해 한 번에 100 개의 이메일 만 정리 한 다음 시간 기반 트리거를 사용하여 기능을 시작합니다.이 이메일은 정리할 이메일이 없을 때까지 계속됩니다. 나는 정리할 메일이 많으며 스크립트는 약 7 번 정도 실행됩니다. 그리고 나서 멈 춥니 다. 가능한 모든 오류 또는 종료 지점에서 이메일을 보내도록 코드를 설정했지만 전자 메일을받지는 못합니다. 스크립트의 트리거를 보면 7 ~ 9 분 전까지 예상대로 매분마다 이동 한 다음 중지합니다. 여기에 내 코드가 있지만 코드 문제는 아니라고 생각합니다.Google 앱 스크립트 시간 기반 트리거 루프 시간 초과
function runcleanup() {
var unreadthreads = 'label:all label:unread -has:red-star older_than:7d',
archivethreads = 'label:inbox -has:red-star older_than:14d',
threads,
execute;
try {
threads = GmailApp.search(unreadthreads, 0, 100);
Logger.log(threads.length);
if (threads.length) {
execute = markasread(threads);
ScriptApp.newTrigger("runcleanup")
.timeBased()
.at(new Date((new Date()).getTime() + 1000 * 15))
.create();
} else {
GmailApp.sendEmail(Session.getActiveUser().getEmail(),
"troubleshooting script",
"threads = " + threads.length);
}
} catch (e) {
GmailApp.sendEmail(Session.getActiveUser().getEmail(),
"troubleshooting script ERROR",
"error = " + e);
}
}
function markasread(threads) {
if (!threads) {
return false;
}
for (var i = 0; i < threads.length; i++) {
threads[i].markRead();
}
return true;
}
function archive(threads, maxDate, delayread) {
if (!threads) {
return false;
}
for (var i = 0; i < threads.length; i++) {
threads[i].moveToArchive();
}
return true;
}
당신은 이전의 '스레드'를 중지하고 있기 때문에 그것은 작동 ...하지만이 작업이 빨리 이루어지고 아닙니다. 또한 무한 루프가 없습니다 ...이 설명에서 설명 할 충분한 공간도 없습니다. – Mogsdad