現在、キュー内のジョブを処理するために Node.js Kue を使用しようとしていますが、正しく行っていないと思います。
実際、私が現在取り組んでいる方法では、2 つの異なるサービス (この場合は Docker Compose で実行しています) があります。Express で構築された Web API の 1 つはジョブをキューに送信し、もう 1 つは処理モジュールです。ここでの問題は、処理モジュールにあります。
次のようにコーディングしました。
var kue = require('kue');
var config = require('./config');
var queue = kue.createQueue({
prefix: config.redis.queuePrefix,
redis: {
port: config.redis.port,
host: config.redis.host
}
});
queue.process('jobType', function (job, done) {
// do processing here...
});
Node でこれを実行すると、処理を実行するためにキューに置かれるのを待っています。
ただし、次の 2 つの問題があります。
このモジュールを実行する前に、Redis が利用可能である必要があります。Redis をまだ利用できない状態でこれを実行すると、ホストにアクセスできないためにクラッシュし、プロセスが終了します。
Redis が突然使用できなくなった場合、接続を確立できず、プロセスが強制終了されるため、処理モジュールもクラッシュします。
これらの問題を回避するにはどうすればよいですか?
私の推測では、どうにかしてコードを Redis を「待機」させる必要がありますが、これを行う方法がわかりません。
この場合、これはどのように行うことができますか?