2012-04-12 3 views
2

주기적으로 다양한 리소스를 폴링 할 수있는 도구/프레임 워크가 있습니까? 예 : 하루에 한 번씩 새로운 콘텐츠를 확인하는 RSS 애그리 게이터 또는 사용자의 트위터의 아바타 캐시를 유지하는 도구를 염두에 둡니다.이 도구는 일주일에 한 번 트위터 계정을 폴링합니다.정기적 인 작업 예약을위한 도구/라이브러리 (예 : 웹 페이지 폴링)

실제 가져 오기 또는 피드 처리를 수행 할 도구를 찾고 있지 않습니다. 마지막으로 가져온 날짜를 저장하고 다음번에 만기가되었을 때 일어나기를 원합니다.

Resque와 Delayed Job과 같은 메시징 도구는 처리보다는 오히려 특정 수신 요청을 "시간 이동"하기 위해 최적화되어 있습니다. 정기적 인 작업. 즉, 모든 사용자가 자신의 Twitter 아바타를 검색 할 수있는 영구적 인 작업을하고 싶지는 않을 것입니다. 그러나 나는 바로 잡아야한다. D.

+0

crontab과 비슷한가요? – Reactormonk

+0

아마, 알람/깨우기 사이에 모든 것을 빠르게 처리하지 못할 수도 있습니다. 즉 기간이 아마도 가변적 일 필요가 있습니다. 그래서 스케줄링이 더 의미가 있다고 생각하는 것입니다. 즉 "적어도 일주일 후에 다시해야합니다." – mahemoff

답변

2

Anacron은 이것에 아주 좋습니다. 우리는 하루에 한 번 일어나서 배경 가져 오기를 시작합니다. 백그라운드 가져 오기 프로그램은 SQL에 대한 쿼리를 수행하여 업데이트가 필요한 다음 N 명의 사용자를 찾은 다음 해당 배치를 수행합니다.

http://en.wikipedia.org/wiki/Anacron

은 "이것은 전통적 크론 수행되는 주기적 명령 스케줄링을 수행하지만, 시스템이 계속 실행된다고 가정없이. 따라서, 매일, 매주의 실행 및 월별 작업을 제어하는데 사용될 수있다 하루 24 시간 운영되지 않는 시스템에서 실행하십시오.

Anacron은 이러한 명령이 시스템 가동 시간이 허용하는 한 정확하게 지정된 간격으로 실행되도록합니다. "

1

우리는 이것을 https://github.com/bvandenbos/resque-scheduler과 그 필요에 부응했습니다. 당신은 yml 파일과 같은 cron을 작성하고 작업은 resque 작업과 마찬가지로 스케줄됩니다. 이미 resque를 사용하고 있다면 이것을 권하고 싶습니다.

+0

고마워요, 당신이 이런 종류의 일을했는지 ​​물어봐도 되나요? 수천 개의 정기적 인 일자리가 있습니까? – mahemoff

+0

그것은 그렇습니다, 나는 그것을 수천 개의 작업을 대기열에 사용했습니다. 그들은 단지 cron이 결국 쿼리하는 redis의 항목입니다. – TomDunning

0

흠 ... 요구에 따라 죽어서 깨어 난 당신의 요구 사항은 도서관에 미리 설치 되기에는 너무 이상적입니다. 데몬이 작업을 마친 후에 죽으면, 필요할 때마다 깨우도록 다른 데몬/실행 작업이 필요합니다. 그러면 원하는 데가 아닙니다.

이러한 작업을 수행하는 데 사용자 지정 데몬으로 foreverb을 사용해보십시오. 매우 간단하고 효율적이며 부품을 격리 할 수 ​​있습니다. 하나의 스크립트는 요구 사항을 작성한 다음 하나의 데몬으로 실행합니다. 당신은 당신이 원하는 정보를 찾을 경우

https://github.com/DAddYE/foreverb

, 당신은 세상이 알게해야합니다.

+0

감사합니다. 사실, 데몬 젬을 가지고 이런 종류의 것을 만들었습니다. 문제는 다양한 종류의 작업에 대해 다양한 논리가 복제된다는 것입니다. – mahemoff