Herokuを眠らせない方法
概要
Google Apps Scriptを利用して30分おきにアクセスを発生させてHerokuを眠らせないようにしています。 複数のサイトを考慮し、またスリープ時間も加味しております。
トリガーについて
アイコンバーの時計のようなアイコンをクリックすると、「トリガーが設定されていません。今すぐ追加するにはここをクリックしてください。」 と表示されると思うのでそちらをクリック。 ”時タイマー”を”分タイマー”にし”30分ごと”を選択して保存をクリックします。
設定するスクリプト
// 起こすサイトの情報 // ※日曜が0、土曜日が6。 var sites =[{ url : "https://hogehoge.herokuapp.com", wakeupHour: 10, sleepHour : 19, activeDayOfWeek: [0,1,2,3,4,5,6] }]; // 現在の日の指定した時間、分、秒を取得します。 function createCurrent(hours, minutes, seconds) { hours = hours || 0; minutes = minutes || 0; seconds = seconds || 0; var current = new Date(); current.setHours(hours); current.setMinutes(minutes); current.setSeconds(seconds); return current; } // URLアクセスしてHerokuを起こします。 function wakeUp() { sites.forEach(function(site) { var now = new Date(); var wakeupTime = createCurrent(site.wakeupHour); var sleepTime = createCurrent(site.sleepHour); var active = wakeupTime <= now && now <= sleepTime && 0 <= site.activeDayOfWeek.indexOf(now.getDay()); if (active) { UrlFetchApp.fetch(site.url, { muteHttpExceptions:true }); } }); }