2017-10-12 1 views
1

저는 결과적으로 1 문자열과 2 정수를 반환하는 많은 Sidekiq 작업 (수천만)을 처리하고 있습니다. Redis 서버를 호스팅하고 결과를 저장하는 중앙 컴퓨터와이 중앙 컴퓨터에서 데이터를 가져 오는 작업자로 작동하는 여러 대의 컴퓨터가 있습니다. Sidekiq - 다른 큐로 밀어 넣는 부작용이 있습니까?

Sidekiq::Client.push('class' => ResultsWorker, 'args' => [arg1, arg2, arg3]) 

와 중앙 컴퓨터에

, 나는 방금이 큐를 검사 다른 노동자를 가지고 : 노동자 내부

, 내가 처리하고 그 결과 이후에 필요한 논리를 호출 않는, 그냥 전화 결과를 데이터베이스에 저장합니다.

이 사이드 키크 커뮤니티에서 언급 된 "양방향 의사 소통"과 같은 패턴을 보지 못했습니다. 그래서 궁금 해서요, 거기에 이유가 있습니까? 이 일의 부작용이 있습니까? 결과를 저장하고 저장하는 redis 서버 comp에 간단한 웹 응용 프로그램을 넣으려고 시도했지만 이러한 작은 데이터의 경우 다른 대기열과 동일한 Redis 서버를 다시 사용하지 않는 것이 좋습니다.

답변

1

이 사이드 키크 커뮤니티에서는 어디서나 "양방향 의사 소통"과 같은 패턴을 보지 못했습니다.

특수하거나 특별한 사항이 없으므로 특별한 언급이나 토론이 필요하지 않습니다. 작업이 실제로 다른 작업을 대기열에 넣을 수 있습니다. 이것은 큰 응용 프로그램에서 왼쪽과 오른쪽으로 발생합니다.


귀하의 경우에 이러한 구체적인 상황의 간접비를 측정해야하지만, 첫 번째 작업에서 직접 데이터베이스에 지속적으로 유지하는 것이 훨씬 빠를 것입니다 (네트워크 요청 등을 만들 때 손실이 없음).

+0

이와 관련하여 비슷한 패턴을 가리킬 수 있는지 궁금합니다. 한달 전에 SideKiq과 함께하고 실제로 사람들이 그것을 어떻게 적용하는지 배우고 싶어합니다. – daremkd

+0

@daremkd : "패턴"이란 무엇입니까? 대기열에 넣는 작업은 패턴이 아닙니다 :) –

+0

일반적으로 작업이 완료 될 때 수행되는 작업에 관해서는 어떤 접근 방식이 사용됩니까? 지금 나는 알고있다. a) 일부 API에 HTTP 요청 전송 b) 결과가 args 인 작업을 큐에 보낸다. – daremkd

관련 문제