1

Heroku で高速アプリをホストする予定です (すでに 1 つの dyno で実験しています)。

メンテナンス タスクにnode-cronを使用したい(MongoDB の更新を行う)。問題は、メンテナンスが 1 回だけ実行されるようにする最も簡単な方法は何ですか? すべての dyno が同時にメンテナンスを実行しようとします。

私の現在のアプローチでは、MongoDB のアトミック アップサートをある種のセマフォとして使用しています (すべての dyno が現在のメンテナンスのフラグを設定しようとします)。しかし、それはちょっと醜いです。

1 日に 1 回実行する必要がある単純なタスクであるため、個別のワーカー インスタンスは使用したくありません。

4

1 に答える 1

1

それが Heroku スケジューラの良いところだと思います ( https://devcenter.heroku.com/articles/scheduler )。更新の実行に時間がかかりすぎていない場合は、それで問題ありません。MongoDB を更新する方法を知っている JS スクリプト (例: schedule.js) を作成し、それをルートに置き、Heroku スケジューラ (簡単なフロントエンドが付属しています) を使用してスケジュールし、node scheduler.js必要な時間に呼び出します ( )。

于 2013-06-23T16:25:47.477 に答える