2013-10-31 3 views
6

저는 현재 레이크 작업으로 실행되는 여러 프로세스가 있습니다. 어떻게 든 사이드 키를 사용하여 연속 루프에서 프로세스를 실행할 수 있습니까? 사이드 킥과 함께하는 것이 가장 좋은 방법입니까?사이드 키를 연속 프로세스에 사용할 수 있습니까?

이러한 프로세스는 현재 각각의 레이크 작업에서 연속 루프로 백그라운드에서 실행되지만 때때로 실패합니다. 그런 다음 레이크 작업을 다시 시작해야합니다.

저는 SO 커뮤니티에서 도움을 받아 몇 가지 옵션을 시도하고 있습니다. 하나는 monit으로 레이크 작업을 모니터링하는 방법을 파악하는 것입니다. 그러나 이것은 각 프로세스가 서버로드에 추가되는 자체 환경을 가져야 함을 의미합니다. 가상화 환경에서 실행 중이므로 가능하면 제거하고 싶습니다.

다른 옵션은 내가 이미 가지고있는 Sidekiq 옵션을 활용하는 것입니다. 사이드 킥을 배경 처리에 사용하지만 항상 일회용입니다. 사이드 키크에서 지속적인 프로세스를 가질 수있는 방법이 있습니까? 또한 실패를 통보 받고 프로세스가 자동으로 다시 시작하게 하시겠습니까?

+0

질문자가 몇 달이 지났기 때문에 질문에 대한 답변을 확인할 수 있습니까? – tentimes

+0

혹시 이것에 대한 해결책을 얻었습니까? 나는 비슷한 해결책을 원하고있다. – jamesc

답변

2

Sidekeq 저자 인 Mike Perham의 대답은 이와 같은 예약 된 작업에 cron 작업을 사용하는 것입니다. 백그라운드에서 실행되도록 Sidekiq에 작업을 제출하는 rake 작업을 생성 할 수 있습니다. 그런 다음 cron 작업을 만들어 예약하십시오.

1

나는 왜 당신이 sideki에 가는지 모르겠다.이 프로젝트는 구체적인가? 이전에는 동일한 문제에 직면했지만 delayed_job으로 마이그레이션하여 내 요구를 충족시킵니다. 활성 레코드 객체가 트랜잭션 사용 인 경우 delayed_job, 그렇지 않은 경우 resque로 이동하십시오.

+1

대부분의 사람들은 전체 Rails 환경을 돌릴 필요가 없으며 시스템 오버 헤드를 거의 발생시키지 않으면 서 많은 양의 작업을 병렬로 실행할 수 있기 때문에 Sidekiq로 마이그레이션했다. – AKWF