대기열 작업을 두 개의 다른 대기열간에 이동하는 방법이 있습니까?대기열간에 Resque 작업 이동
가끔 우리는 큰 대기열과 끝자리 근처에 "우선 순위를 높여야"할 필요가 있음을 알게됩니다. 우선 순위가 높은 작업을 기다리는 작업자가있는 다른 대기열로 이동하는 것이 쉬운 방법 일 수 있다고 생각했습니다.
이것은 거의 발생하지 않으며 일반적으로 고객으로부터 특별한 전화를받는 경우이므로 스케일링, 리엔지니어링이 필요하지 않습니다.
대기열 작업을 두 개의 다른 대기열간에 이동하는 방법이 있습니까?대기열간에 Resque 작업 이동
가끔 우리는 큰 대기열과 끝자리 근처에 "우선 순위를 높여야"할 필요가 있음을 알게됩니다. 우선 순위가 높은 작업을 기다리는 작업자가있는 다른 대기열로 이동하는 것이 쉬운 방법 일 수 있다고 생각했습니다.
이것은 거의 발생하지 않으며 일반적으로 고객으로부터 특별한 전화를받는 경우이므로 스케일링, 리엔지니어링이 필요하지 않습니다.
경우에 따라 새 작업을 수동으로 짧은 대기열로 밀어 넣는 것이 좋습니다. 시스템은 작업이 이미 실행되었다는 것을 확인하고 긴 대기열에있는 작업이 최종적으로 도달 할 때 다시 처리되지 않도록 (이중 처리가 문제가되는 경우 당신).
Resque에는 기본 제공되는 것이 없습니다. 당신이 사용할 수있는 rpoplpush
좋아 :
module Resque
def self.move_queue(source, destination)
r = Resque.redis
r.llen("queue:#{source}").times do
r.rpoplpush("queue:#{source}", "queue:#{destination}")
end
end
end