2013-03-09 5 views
0

Thing은 각각 archive 속성을가집니다. 0으로 설정하면 아무 일도 일어나지 않습니다. 그러나 그렇지 않은 경우 처리 할 대기열에 추가하려고합니다.delayed_job 대 cron 장기 실행 작업

많은 요청을 보내고 처리하기 때문에 Thing을 보관하는 데는 3 ~ 30 초가 소요될 수 있습니다. 그래서 제 질문은 내가 그렇게해야합니까있다하십시오 Thingarchive 세트 1가있는 경우,

  1. 을이 모든 너무 자주 레이크 작업을 처리 할 수있는 큐에있는 (매 15 분 정도)하고, 다시
  2. 처리 Thingdo_archive 방법을 확인하고 저장할 때, self.delay.do_archive을되는 것을 중지하려면 2로 설정 archive 속성이, 나

일부 Things에 대한 delayed_job 핸들에게이 모든 것을 할 수처리 할 필요가 없으며 아카이빙은 시간에 필수적인 것이 아닙니다. 내 직감은 delayed_job은 아마도 시간과 관련이 없으며 매일 자정에 스크립트를 실행하는 것과 달리 큐를 통과하기 때문에 더 좋은 아이디어 일 것입니다.

답변

1

나는 당신이 당신의 마지막 단락에서 꽤 많이 빠졌다고 생각합니다. 시간 의존적이며 이벤트 중심이 아닌 무언가가 있다면 cron이 더 의미가 있습니다. 그러나 이벤트가 발생하여 대기열에 넣을 수 있고 시간에 의존하지 않으면 백그라운드 작업을 사용하십시오.

고려해야 할 한 가지 사실은 실제 메시징 시스템이 더 적합한 지 여부입니다. RabbitMQ과 같은 것이 현재있는 곳의 과잉 행동일지도 모르지만 다른 간단한 옵션이 있습니다. Sidekiq 또는 Resque은 백그라운드 작업에 대한 제어 권한을 많이 가지며 delayed_job의 단순성과 메시징 시스템의 견고성을 제공하는 두 가지 인기있는 옵션입니다.