[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.)