とうとうHerokuが新プランへ移行し、フリーで使っているHubotがsleepしだしました。
起きている時間帯はhubot-heroku-keepaliveの更新で期間指定できるようになったのですが、sleepから起きることはできません。
当初はSlackで発言したら発言チェックの送信でHerokuが起きるかと思いましたが、そうでもない様子。
世間ではheroku schedulerの利用が一般的なようですが、クレジットカードを登録していないのでアドオンも使えない…
ということで、毎回手動でブラウザからHerokuのアプリケーションアドレスに接続して起こしていたのですが、いい加減面倒なので、PowerShellに。
PowerShellにせずともshのcronとかでもいいのですが、業務時間に動いていればいいだけなので、今回はログオンをトリガーにしました。
Invoke-WebRequest -Uri "起こしたいアプリケーションアドレス" -Method Get -TimeoutSec 1
Hubotの場合はCannot GET / かタイムアウトかでエラーになりますが、結果は重要ではなく、アプリにアクセスがあったことで起動します。
(なのでTimeout 1に)
あとはhubot-heroku-keepaliveがデフォルト5分間隔で自身にpingを打ち起きっぱなしにしてくれます。
ログオン時の起動設定はこちら
ログオン・ログオフ時にPowerShellを起動しSlackへ通知する【Windows7】 - Qiita