문제

Linux를 실행하는 "어플라이언스"(더 나은 설명 부족)가 있습니다.

현재 나는 일자리를 시작하기 위해 상자에 ssh를 넣습니다. 이것은 내 사용자에게 충분히 친숙하지 않으므로 스크립트를 시작하기 위해 간단한 웹 UI를 구성합니다. 직업은 10 초에서 몇 시간 동안 어디에서나 실행됩니다. 웹 UI는 작업 상태를 반영해야합니다.

서버에서 새로운 작업 요청에 대한 스풀 디렉토리 (또는 DB 테이블)를 시청하는 데몬을 실행하여 과거에 비슷한 문제를 해결했습니다. 또는 상태 파일. 그런 다음 Web UI는 작업 요청을 스풀 DIR (DB)로 삭제하고 때때로 상태 파일 (DB)을 확인합니다. 이것은이 작업에 대해 과잉 일 수 있습니다.

현재 작업의 경우 CGI에서 작업이 산란하고 때로는 작업이 진행되거나 종료 될 때 작성되는 상태 파일을 확인하는 것을 고려하고 있습니다.

내 질문 :이를 수행하는 더 나은 (간단하고 더 빠른 최하위/더 강력한) 방법이 있습니까? 내가 알아야 할 기존 패턴이나 도구가 있습니까?

(파이썬 솔루션은 이상적입니다.)

감사.

도움이 되었습니까?

해결책

나는 많은 프로젝트에서 이것을한다. 즉시 파이썬 스크립트 (하위 프로세스 사용)를 생성하는 웹 애플 (주로 파이썬/CGI) 스스로 대상이됩니다 일을하기 위해. 그런 다음 웹 애플은 데몬 프로세스 진행 상황을 확인하기위한 AJAX 요청을 계속 발행합니다 (통신에 간단한 TXT 파일을 사용하면 데이터베이스가 더 나을 것입니다). 한 가지 좋은 터치는 데몬에게 최종 사용자가 완료되면 (결과를 검색 할 수있는 링크와 함께) 이메일을 보내는 것입니다. 이렇게하면 사용자는 몇 시간이 걸리는 작업에서 웹 브라우저를 닫을 수 있습니다.

다른 팁

나는 당신의 문제를 올바르게 이해했는지 확실하지 않지만, 당신이 동시에 실행할 수있는 여러 "작업"이 있고 웹 페이지에 완료되었는지 여부를 보여주기를 원합니까?

작업을 시작할 때 웹 페이지 (Python & Mod_wsgi)는 작업을 입력하는 Python 스크립트를 시작하고 SQLITE 데이터베이스라고 가정하고 작업이 완료되면 작업이 완료되면 스크립트가 작업에 대한 항목을 업데이트하여 작업을 실행합니다. 완전한 것으로 표시되어 있습니다

상태 페이지는 단지 sqlite의 내용을 표시합니다.

작업 ID 외에 DB에 넣고 싶은 것은 작업 상태 웹 페이지에 표시하려는 내용에 따라 다릅니다.

사이드 노트 - "일자리"가 편집이라면 만나십시오. 허드슨 강

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top