2016-09-05 9 views
0

Phusion Passenger (버전 5.0.7)에서 Rails 웹 애플리케이션을 실행 중입니다. 일부 http 요청은 스레드 풀에서 백그라운드 작업으로 실행되는 워크 플로를 트리거합니다 (Concurrent Ruby future 사용). Phusion Passenger가 포크 서버라는 점을 감안할 때 보류중인 요청이 처리되지 않으면 작업자 프로세스가 종료되지 않을 것이라는 보장은 없습니다. 이렇게하면 해당 프로세스의 일부 스레드 풀에서 실행될 수있는 백그라운드 처리를 중단 할 수 있습니다.레일 : Ruby 스레드를 사용하여 Rails 4 애플리케이션에서 백그라운드 작업 실행

Phusion Passenger에서이 작업을 수행 할 수있는 방법이 있습니까? 또는 퓨마가 그러한 유스 케이스에 대해 더 나은 선택이 될 것인가?

+0

왜 배경 작업을 위해 별도의 프로세스를 사용하지 않습니까? –

+0

그 일을 수행하는 방법에 대한 답변을 추가해 주시겠습니까? 내가 그 질문을 한 이유. Delayed Jobs, Sidekiq 등을 좋아하지 않습니다. 이미 작업 흐름을 적절히 다루는 코드를 작성했기 때문입니다. – CppNoob

+0

코드가 서버 재시작도 처리합니까 (작업이 손실됩니까)? –

답변

0

백그라운드 작업을 실행하는 데 HTTP 서버가 필요하지 않습니다. Rails의 ActiveJob 작업 큐 관리 및 처리 기능을 확인하십시오.

+0

Sidekiq, Resque 등의 사용자 정의 구현을 사용할 수 있습니까? 현재 백그라운드 처리를 처리하는 잘 테스트 된 많은 양의 코드가 있습니다. – CppNoob

+0

물론 기존의 백엔드 구현 중 하나 (예 : https://github.com/collectiveidea/delayed_job)를 변경하여 API를 구현할 수 있습니다. 또한 http://guides.rubyonrails.org/command_line.html#rails-runner를 사용하여 콘솔에서 코드에 대한 레일 작업을 실행할 수도 있습니다. –