2010-12-21 3 views
0

새 이메일을 확인하고 처리하기 위해 5 ~ 15 분마다 POP3 계정을 가져와야하는 앱을 개발 중입니다. 5 ~ 15 분마다 자동으로 실행되는 부분을 제외하고 모든 코드를 작성했습니다.15 분마다 새 메일에 POP3 서버를 가져 오는 가장 좋은 방법은 무엇입니까?

나는 Heroku가 시간당 cron 작업만을 제공하기 때문에 Sinatra, DataMapper 및 Heroku에서의 호스팅을 사용하고 있습니다. cron 작업은 문제가되지 않습니다.

나는 Sinatra 나 DataMapper를 기본적으로 지원하지 않는 Delayed :: Job을 들여다 보았지만 회피 방법은 forboth입니다. Ruby에 대한 지식이 제한적이므로이 두 포크를 Sinatra/DataMapper 솔루션 용 Delayed :: Job으로 병합하는 방법을 찾지 못했습니다.

처음에는 폴링이 내장되어 있고 계속 실행되는 이메일을 확인하기 위해 Mailman을 사용했지만 랙 기반이 아니기 때문에 Heroku에서는 실행되지 않습니다.

다음에 어디로 가야합니까? 당신이 말하기 전에 : 다른 웹 호스트, 나는 (물론 위의 문제를 제외하고) 사용의 용이함 때문에 Heroku를 계속 사용하는 것을 선호한다고 덧붙여 야합니다. 이 경우 ...

테스트되지 않은 샘플 코드를

loop do 
    do_something_way_cool() 
    sleep 5 * 60 # it's in minutes 
end 

을 :

답변

1

간단한 트릭 코드가 루프에 포함 된 작성하는 것입니다, 다음 그러나 당신이 원하는에 대한 그것의 바닥에 잠 응용 프로그램의 본체에 포함 된 다음 스레드가 작업을 수행 할 수 있도록 포장하려면 Thread을 사용하십시오. 루프에서 데이터를 전송하려면 공유 데이터 구조를 찾아야합니다. Queue은 귀하의 친구입니다.

관련 문제