문제

지연된 작업을 사용하여 배경 작업을 관리하고 있습니다.
그러나 정기적으로 실행 해야하는 작업이 있습니다. 예를 들어 매 시간, 매일 또는 매주.

지금은 작업을 실행할 때 하루/주/월에 실행할 새 작업을 만듭니다.

그러나 나는 그것을 정말로 좋아하지 않습니다. 어떤 이유로 든 작업이 완전히 실행되지 않으면 다음 작업을 생성하지 않으며 작업 실행을 잃을 수 있습니다.

Rails 앱에서 이러한 종류의 작업 (작업 지연)을 어떻게 관리하여 일반 작업 목록이 올바른지 확인합니까?

도움이 되었습니까?

해결책

CRON에 액세스 할 수 있다면 언제든지 적극 권장합니다.

http://github.com/javan/whenever

실행하려는 내용과 Dead Simple Ruby의 빈도를 지정하고 공급 업무를 수행 할 때 마다이 작업이 크론 탭으로 변환하고 시스템의 Crontab을 업데이트하기 위해 작업을 갈등시킬 때마다 지정합니다.

빈번한 Cron에 액세스 할 수 없다면 (우리가 Heroku에 있기 때문에 그렇지 않은 것처럼) DJ는 갈 길입니다.

몇 가지 옵션이 있습니다.

  1. 당신이하고있는 일을하십시오. DJ는 각 작업을 일정 횟수로 다시 시도하므로 거기에 약간의 관대함이 있습니다.

  2. 다음 DJ 작업을 생성하는 코드를 보장 블록에 넣어 예외 또는 기타 잘못된 이벤트 후에도 생성되도록하십시오.

  3. 주기적으로 실행되는 다른 DJ를 만들고, 적절한 DJ가 존재하는지 확인하고 그렇지 않은 경우 생성합니다. 물론, 이것은 모니터와 실제 DJ가 동일한 환경에서 실행되기 때문에 다른 옵션만큼 오류가 발생하기 쉬운 오류입니다.

다른 팁

이런 종류의 물건에 Cron을 사용하지 않는 특별한 이유가 있습니까? 아니면 더 루비 같은 것 같은 것일 수도 있습니다 Rufus-scheduler, 그것은 꽤입니다 사용하기 쉬운 그리고 매우 신뢰할 수 있습니다.

대기열이 필요하지 않으면 이러한 도구는 갈 수있는 방법이라고 생각합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top