보기를 차단하지 않고 웹 응용 프로그램의 백그라운드에서 일부 작업 (코드 검사 등)을 실행해야합니다.Pyramid 웹 응용 프로그램에서 장기 실행 작업
일반적인 Queue
/Celery
시나리오의 비틀기는 최종 결과가 무엇이든 작업이 완료 될 때까지 작업이 완료되고 웹 앱 크래시에서도 살아남거나 작업이 완료 될 때까지 다시 시작해야한다는 것입니다.
multiprocessing.Pool
에 대한 매개 변수를 데이터베이스에 기록하고 webapp를 다시 시작할 때 모든 불완전한 작업을 시작하려고 생각했습니다. 그것은 가능하지만 간단하거나 비용 효율적인 방법이 있는지 궁금합니다.
업데이트 : 셀러리가 어째서 좋을까요? 글쎄, 일부 프로젝트에서는 셀러리를 사용했지만 실제로는 훌륭한 솔루션이지만,이 작업은 큰 측면에 있습니다. 필요한 모든 작업은 여러 프로세스/스레드를 생성하는 것 외에는 별도의 서버, 통신 등이 필요합니다. 그들 (git clone ...
, svn co ...
)에서 작업하고 그들이 성공했는지 실패했는지 확인하십시오. 또 다른 문제는 정교한 기업 가이드 라인, 절차 등을 따르도록해야하므로 솔루션을 가능한 한 작게해야한다는 것입니다. 샐러리를 선상에 올리려면 인간 관리 및 관료적 인 오버 헤드가 필요합니다. 할 수 있으면 피하기를 원합니다.
당신은 셀러리에 대해 언급했습니다 - 당신이 그것을 무시하고 자신의 솔루션을 발명하게 만드는 이유는 무엇입니까? 이 작업은 Celery – Sergey
@ Sergey의 일반적인 사용 사례처럼 보입니다. UPDATE를 참조하십시오. – LetMeSOThat4U