2014-07-07 7 views
6

1) 이메일을 보내고, 2) API 호출을 수행하기 위해 백그라운드 처리를 구현해야합니다. 그리고 내가 사용하는 시스템이 무엇이든 상관없이 어떤 종류의 cron 스케줄러와 결합 할 것입니다 (언제나 가능할 것입니다). 내가 궁금한 점은 정말 멋진 배경 처리 보석 (Delayed Job, Sidekiq, Resque)이 있다는 것을 알았지 만, Ryan Bate의 비디오 당 하나의 레이크 작업으로 백그라운드 처리를 할 수 있다는 것도 알고 있습니다. http://railscasts.com/episodes/127-rake-in-background.백그라운드에서 레이크 작업을 실행하는 것과 지연된 작업, 리스크 또는 사이드 키와 같은 보석을 사용하는 것의 차이점은 무엇입니까?

젬 VS 레이크 작업을 백그라운드 프로세스로 사용하는 것이 옳은가요? 나에 관한 후자에 관한 한 가지 사실은 레이크 작업이 호출 될 때마다 새로운 환경을 만들어야한다는 것인데, 이것은 메모리에 엄청난 비용이 듭니다.

보석의 비교는 필요하지 않습니다. 이 시리즈는 여기에서 훌륭한 일을했습니다 : http://www.sitepoint.com/series/comparing-ruby-background-processing-libraries/

답변

3

병렬 처리. N 명의 직원이 이메일을 동시에 보내도록 할 수 있습니다. 갈퀴로 하나의 스레드가 있고, 많은 이메일을 보내려면 시간이 걸릴 것입니다.

+0

예 이미 비동기이므로 시간이 중요하지 않습니다. 솔직히 많은 이메일이 없습니다. 빠른 생각, 새로운 환경의 회전은 갈퀴 접근법에 큰 문제가되지 않습니까? – james

1

나를위한 휴식이었던 또 다른 큰 차이점은 배경의 레이크 작업이 동일한 Heroku dyno를 실행한다는 것이었지만 다른 추가 기능에는 별도의 작업자 dyno가 필요했습니다. , 경우에 사람이

편집을 인터넷 검색, 그냥 Sidekiq 당신이, 같은 노동자 다이노를 사용하는이 튜토리얼을 볼 수 배웠 : https://coderwall.com/p/fprnhg

0

을 또 다른 큰 차이점은 sidekiq 같은 보석은 당신이를 처리하기 위해 제공하는 도구가 될 수있다 백그라운드 작업.

예를 들어, 매일 여러 CSV 파일을 읽도록 예약 된 백그라운드 작업을 처리해야하는 경우 해당 처리 결과를 처리하거나 최소한 결과를보고 메트릭을 읽은 다음 실패한 경우 다시 시도해야 할 수 있습니다 등 레이크 작업으로 직접 작성해야 할 것 같네요.

내 경우에는 (나는 여기에 인터넷 검색을하고있다), 나는 매우 간단하고 너무 무거운 작업을 스케줄과 비동기 적으로 수행해야하기 때문에 갈퀴 작업을 할 것이고 설치, 구성 sidekiq과 같은 보석을 서버에 의존하여 유지할 수 있습니다.