2013-07-18 1 views
2

은이 적혀있다 :사이드킥 작업 시간은 얼마입니까? <a href="https://github.com/mperham/sidekiq/wiki/Best-Practices" rel="nofollow">Sidekiq wiki</a>에서

  1. 당신의 작업이 작고 간단한 확인

내가 단순 얻을 나는 나무 등 및 거래를 얻을 수 있지만, 작은 무엇? 메모리 및 컴퓨팅 시간이 필요할 수 있습니다. 내 Sidekiq 직업은 10 초와 30 분 사이에 걸립니다.

나는 10 초가 괜찮다고 생각하지만, 30 분의 장기간 작업은 어떨까요? 데이터베이스에서 특정 유형의 모든 데이터를 메모리로로드하고, 오랜 계산을 실행 한 다음 결과를 다시 작성합니다. 한 가지 일에 세 가지가 모두 포함됩니다.

괜찮습니까? 아니면 작은 계산을 실행하는 여러 작업자 작업에서 작업자 작업을 호출해야합니까? 문제는 이러한 작은 계산은 계산을 수행하기 위해 몇 가지 복잡한 해시 테이블을 필요로 할 수 있으며 Redis에서이를 유지하지 않는 것이 좋습니다. 단지 작은 단순한 값입니다.

답변

6

얼마나 자주 작업을 원하거나 실행해야하는지, 너무 오래 걸리는지 여부에 따라 달라집니다.

작업을 완료하는 데 걸리는 시간보다 짧은 간격으로 실행하면 확실히 길어집니다.

하면 전체 실행 시간을 개선 할 수있는 경우에만 여기에 도움이 될 여러 노동자로 그것을 분할 (예를 들어, 그 중 일부는 동시에 실행할 수있는 경우) 항상 엄지 손가락의

그래서 규칙 :만큼 그것은 당신의 필요가 괜찮아요. 그러나

: 긴 작업에

  • 당신이 작업 (등 서버 충돌) 어떤 이유로 중반 실행을 실패 할 수 있음을 고려해야한다.
  • 이 긴 작업을 계속 진행할 수 있습니까, 아니면 제대로 롤백 할 수 있습니까?
  • 기타 : 작업을 실행하는 동안 데이터가 변경되면 어떻게됩니까?
관련 문제