복붙노트

[REDIS] BLPOP를 사용하여 레디 스와 작업 대기열

REDIS

BLPOP를 사용하여 레디 스와 작업 대기열

임 레디 스 및 루비 eventmachine을 사용하여 무한 작업 대기열을 만들려고. 임 0 시간 제한 레디 스 BLPOP 명령을 사용하는 것을 달성하기 위해. 성공적인 BLPOP 후 다시 실행합니다.

나는 올바른 방법으로 오전 또는 레디 스와 작업 대기열을 만들 수있는 더 좋은 방법은 무엇입니까?

해결법

  1. ==============================

    1.대기열에서 메시지를 제거하기 위해 혼자 BLPOP를 사용하고 메시지 소비자가이를 처리하지 않을 경우, 메시지는 실패한 소비자와 함께 영원히 사라 않도록, 다시 대기해야 할 것이다.

    대기열에서 메시지를 제거하기 위해 혼자 BLPOP를 사용하고 메시지 소비자가이를 처리하지 않을 경우, 메시지는 실패한 소비자와 함께 영원히 사라 않도록, 다시 대기해야 할 것이다.

    그들은 다시 대기 장애가 발생 될 수 있도록 내구성 메시지 처리를 위해 처리되는 메시지의리스트를 유지해야한다.

    [B] RPOPLPUSH이 시나리오에 적합; 응용 프로그램이 소비자의 끝에 실패의 경우에 응답 할 수 있도록 그것은 원자 적으로 처리 큐에 메시지 큐 및 푸시을에서 메시지를 팝업 할 수 있습니다.

    http://redis.io/commands/rpoplpush

    실제 재 대기열은 응용 프로그램에 남아 있지만, 레디 스 명령은 기초 그렇게하도록 제공한다.

    이러한 RestMQ 같은 웹 떠돌아 레디 스를 사용하여 큐의 일부 드롭에서 적절한 구현도있다 [http://www.restmq.com/]

  2. from https://stackoverflow.com/questions/7241310/job-queue-with-redis-using-blpop by cc-by-sa and MIT license