• ..

TypeScript

    できるだけ長時間動かす

    Glitch はそのままだと5分 HTTP アクセスがないと停止してしまいます。また12時間ずっと立ち上がっていても停止します。これは新しい HTTP アクセスがくると再度立ち上げてくれますが、少しラグがでます。

    ということで、少しは止まってしまうもの定期アクセスがあれば23時間50分ぐらいは動かせれそうです。そこで使うのがcron-job.orgというサイトです。
    これは定期的に(2,5分毎など)や特定の時間に指定したメソッドで HTTP アクセスの処理を予約できるサイトです。なので2分毎に自分の Glitch 上の Web アプリにアクセスすることで停止するのを防ぐようにします。

    Express での例

    これは簡単で、単にそれ用の GET ルートを作ってそのに定期アクセスするだけです。一応200は返す作りにしましょう。これはcron-job.orgのデフォルト設定ですが、「 HTTP アクセスに失敗しまくった時はその定期処理を一時停止する」というような設定になっています。これはオフにできるのですが、個人的にcron-job.orgの管理が楽になると思うので、 Web アプリ側を対応したほうが後々楽だと思います。

    というわけでこんなコードを書きました。

    const express = require('express');
    
    const app = express();
    
    app.get('/cron-job', (_, res) => {
      res.send('working!');
    });
    
    app.listen(3000);

    https://<glitch-project-name>.glitch.me/cron-jobという URL にアクセスするとworking!と表示されるページができました。

    定期処理の設定

    適当に認証だけ済ませます。そして Cronjobs タブから「Create cronjob」をクリックします。

    アドレスには先程作った/cron-jobの URL を指定します。タイトルは何でもいいです。またデフォルトでは「Every 15 minute(s)」となっているので「Every 2 minute(s)」に忘れずに設定します。

    登録して完了です。