web-dev-qa-db-ja.com

Herokuサーバーがスリープしないようにする

Herok サーバーでホストされているWebサイトを取得しました(私はHeroku btwの新人です)、それは無料パッケージの下にあるので、その後スリープします30分間非アクティブ、ユーザーがヒットしたときに再度アクションを実行するには、約7秒かかりますnpm run startが成功しました。

Nodejsジョブを実行するか、サーバーがスリープ状態にならないように29mごとにWebサイトを開くものを考えています。最初は、次のようなものを取得しました。

(function wakeup() {
  require('open')('https://mywebsite.herokuapp.com', (err) => {
    if (err) throw err;
    console.log('Woke up!');
    setTimeout(wakeup, 1740000); //29m
  });
})()

N.B .:ブラウザで開くだけですが、閉じる処理は行いません。

  • まず、この回避策を実行することは合法ですか?
  • 次に、「はい」の場合、これを実装するための最良のアプローチは何ですか?
13
Basim Hennawi

無料のdynoをいつでも好きなだけ起こしておくことは完全に合法です。 無料dyno時間 の毎月の割り当てが制限されていることに注意してください。クレジットカードでHerokuアカウントを確認した場合、1か月あたり1000時間の無料dynoがあり、これは1つの無料のWeb dynoをまったく眠らずに「永久に」維持するのに十分です。これを行う非常に簡単な方法は、アプリに New Relicアドオン を構成することです(無料のNew Relicプランを使用)。これを簡単に構成して、Herokuアプリを定期的にpingすることができます。 Herokuアプリがアイドリングしないようにするその他の方法については、 こちら を参照してください。

19