현재 대기열에서 작업을 처리하는 데 Node.js Kue를 사용하려고합니다.하지만 제대로 수행하지 못하고 있다고 생각합니다.Redis 연결을 기다리는 방법?
현재 제가 일하고있는 방식으로 두 개의 다른 서비스 (이 경우에는 Docker Compose로 실행 중입니다)가 있습니다. Express와 함께 구축 된 하나의 웹 API는 작업을 대기열 및 처리 모듈로 보냅니다. 문제는 처리 모듈에 있습니다. 다음과 같이 내가 코딩 한
는 :
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...
});
우리는 처리를 할 큐에 배치 할 것을 기다리고있다 앉아, 노드와 함께이 프로그램을 실행할 때.
그것은 레디 스가 이 모듈을 실행하기 전에 사용할 수 있음을 필요 :
그러나 두 가지 문제가 있습니다. 이미 Redis를 사용하지 않고이 프로그램을 실행하면 호스트에 액세스 할 수 없어 프로세스가 종료되기 때문에 충돌이 발생합니다.
Redis가 갑자기 사용할 수 없게되면 처리 모듈도 연결을 유지할 수 없으며 프로세스가 종료되기 때문에 충돌합니다.
이러한 문제를 어떻게 피할 수 있습니까?
제가 생각하기에 Redis의 코드를 "대기"해야한다고 생각합니다.하지만 어떻게해야할지 모릅니다.
이 경우 어떻게 수행 할 수 있습니까?