GASユーティリティ:sleep
GAS基礎とUtilitiesの活用
Google Apps Script(GAS)は、Google Workspace のサービスを自動化するための強力なツールです。GAS で頻繁に使われるユーティリティ関数は、Utilities クラスに集約されています。例えば、日付のフォーマットや文字列のエンコード・デコード、ファイルのハッシュ計算などが簡単に行えます。
以下は、Utilities を使って現在時刻を ISO 8601 形式で取得し、Base64 エンコードするサンプルです。
function encodeCurrentTime() {
var now = new Date();
var iso = Utilities.formatDate(now, Session.getScriptTimeZone(), "yyyy-MM-dd'T'HH:mm:ssXXX");
var encoded = Utilities.base64Encode(iso);
Logger.log('ISO: ' + iso);
Logger.log('Base64: ' + encoded);
}
このように、Utilities を活用することで、GAS のコードを短く、読みやすく保つことができます。
sleepと待機で実装するタイミング制御
GAS には Utilities.sleep(milliseconds) という関数があり、指定したミリ秒だけスクリプトの実行を停止させることができます。これは、API 呼び出しのレートリミットを回避したり、非同期処理のように見せる際に便利です。
以下は、1 秒ごとにログにメッセージを出力する例です。
function logWithDelay() {
for (var i = 1; i <= 5; i++) {
Logger.log('Tick ' + i);
Utilities.sleep(1000); // 1000ミリ秒 = 1秒
}
}
注意点として、sleep は実行時間を延長するため、GAS の実行時間制限(6 分)に達しないように設計する必要があります。
formatStringとbase64で便利機能を拡張
文字列のフォーマットは、Utilities.formatString を使うと簡単に行えます。例えば、テンプレート文字列に変数を埋め込む際に便利です。
function greet(name) {
var template = 'こんにちは、%s さん!';
var message = Utilities.formatString(template, name);
Logger.log(message);
}
また、Base64 エンコード・デコードは、データの転送や保存時に文字列を安全に扱うために頻繁に使用されます。以下は、文字列をエンコードし、再度デコードして元に戻すサンプルです。
function testBase64() {
var original = 'GASで便利機能を試す';
var encoded = Utilities.base64Encode(original);
var decoded = Utilities.base64Decode(encoded);
Logger.log('Original: ' + original);
Logger.log('Encoded: ' + encoded);
Logger.log('Decoded: ' + decoded);
}
これらのユーティリティを組み合わせることで、GAS での開発効率を大幅に向上させることができます。
コメント
コメントを投稿