[GAS] 정확한 시간에 트리거를 시작합니다.
6721 단어 Google Apps ScriptGAStech
개시하다
다들 쓰고 있어?
GAS
릭의 규격 외에 Javascript
관련 서비스와 잘 맞아 자동송신Google
이나 조작Gmail
내용 등을 활용할 수 있는 장면이 폭넓다.GoogleSpreadSheet
의 기능으로는'촉발기'가 있다.특정 조건하에서 미리 기술된 코드를 실행하는 기능이기 때문에 대량 처리 등을 제공하는 사람도 있죠?
그렇다
GAS
의 촉발기는 약간의 단점이 있다.UI에서 시간을 지정하면 다음과 같은 조건만 설정할 수 있습니다.
네, 실행 시간에 폭이 생길 수 있습니다.
지정된 시간의 트리거를 선택하더라도 실제 실행 시간은 한 시간 연장됩니다.
점심시간부터 준비했기 때문에 할 말이 없다고 생각했는데 좋은 해결책이 생겼어요.
하지만 UI가 아니라 코드 안에서 처리해야 하기 때문에 기사로 정리하고 싶어요.
코드
먼저 완성품이 되는 코드입니다.
// 現在の日付を取得
const next = new Date();
// 翌日の日付に変換
next.setDate(next.getDate() + 1);
// 09:30:00に時刻を設定
next.setHours(9);
next.setMinutes(30);
next.setSeconds(0);
// hogeという関数を9時に実行するトリガーを作成
ScriptApp.newTrigger('hoge').timeBased().at(next).create();
마지막 행에 익숙하지 않은 모듈이 있기 때문에 이를 중심으로 해설한다.ScriptApp.newTrigger
GAS
표준 준비 모듈에서 트리거ScriptApp.newTrigger
유형을 생성하는 실례.// test()を実行するTriggerBuidlerを生成
const testTrigger = ScriptApp.newTrigger('test');
이 단계에서 트리거를 설정하지 않았습니다.생성된 실례
GAS
를 실행해야만 터치할 수 있습니다.// testTriggerを設定
testTrigger.create();
timebased를 사용하여 ClockTriggerBuilder 생성
목적 트리거는 지정한 시간에 시작하는 트리거 유형입니다.
따라서 일반
TriggerBuilder
이 아닌 create()
유형의 실례를 사용해야 한다.TriggerBuilder
는 집행ClockTriggerBuilder
의 실례ClockTriggerBuilder
를 통해 생성된 것이다.생성된 실례
TriggerBuilder
는 timeBased()
를 사용하여 실행 시간을 지정할 수 있습니다.매개 변수는
ClockTriggerBuilder
형이다.// testTriggerからClockTriggerBuilderを生成
const testClockTrigger = testTrigger.timeBased();
// 2020/01/01 00:00:00で時間指定し、トリガーをセット
testClockTrigger.at(new Date(2020,11,25)).create();
실행 결과
이전 완성 코드를 실행할 때 UI에서 트리거를 확인한 후 다음과 같이 표시됩니다.
트리거 유형은'날짜 트리거'에서'특정 시간'으로 바뀌었고 실행 시간도 1시간의 너비가 없어 정확한 시간을 설정한 것을 알 수 있다.
총결산
매일 결정되는 시간에 시작하는 처리를 만들어야 하는데, 이 방법을 이용하는 것은miso다.
실행 과정의 마지막 설정인'자신의 시간 지정 트리거 호출'을 통해 트리거를 생성하여 매일 특정한 시간 안에 조작할 수 있다.
Reference
이 문제에 관하여([GAS] 정확한 시간에 트리거를 시작합니다.), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://zenn.dev/nekoniki/articles/6d690cccf5a74c7ee0dc텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)