CSV 파일의 일부 데이터를 처리하는 파이썬 스크립트를 작성했습니다. 스크립트는 CSV의 크기에 따라 완료하는 데 3 ~ 30 분이 걸립니다.스크립트 실행에 30 분이 걸리는 웹 인터페이스 만들기
이제는 웹 인터페이스를 사용하고 싶으므로 어느 곳에서나 CSV 데이터 파일을 업로드 할 수 있습니다. 기본 HTTP POST 업로드 페이지를 작성하고 Python의 CGI 모듈을 사용했지만 스크립트가 잠시 후에 시간 초과되었습니다.
스크립트는 시작시 HTTP 헤더를 출력하고 CSV의 모든 행을 반복하여 데이터 비트를 출력합니다. 예를 들어,이 print 문은 30 초마다 트리거됩니다.
# at the very top, with the 'import's
print "Content-type: text/html\n\n Processing ... <br />"
# the really long loop.
for currentRecord in csvRecords:
count = count + 1
print "On line " + str(count) + " <br />"
나는 브라우저가 헤더를 수신하고 약간의 데이터 비트를 수신 할 때까지 기다릴 것이라고 가정했습니다. 실제로 실제로는 어떤 데이터도 수신되지 않으며 많은 행이있는 CSV가 제공되면 Error 504
시간이 초과됩니다.
아마도 어딘가에 캐싱이 발생 했나요? 로그에서
[Wed Jan 20 16:59:09 2010] [error] [client ::1] Script timed out before returning headers: datacruncher.py, referer: http://localhost/index.htm
[Wed Jan 20 17:04:09 2010] [warn] [client ::1] Timeout waiting for output from CGI script /Library/WebServer/CGI-Executables/datacruncher.py, referer: http://localhost/index.htm
이 문제를 해결하는 가장 좋은 방법은 무엇입니까? 아니면 브라우저에서 이러한 스크립트를 실행하는 것이 적절하지 않습니까?
편집 : 이 내 자신의 사용을위한 스크립트입니다 - 나는 일반적으로 내 컴퓨터에 사용하려는, 그러나 나는 웹 기반 인터페이스를 여행하는 동안 편리하게, 또는 휴대 전화에서, 예를 들어 수 있다고 생각. 또한 실제로 다운로드 할 것이 없습니다. 스크립트는 결국 보고서를 전자 메일로 보냅니다.
당신은이 지구상의 환자가 데이터로 다운로드하는 대신 브라우저에서 웹 페이지를로드하는 데 30 분을 충분히 대기한다고 생각하십니까? – YOU
이것은 내 자신을위한 스크립트입니다. 저는 보통 내 컴퓨터에서이 스크립트를 사용하려고 합니다만, 여행 중 또는 웹에서 인터페이스를 사용하는 것이 편리 할 수 있다고 생각했습니다. 또한 실제로 다운로드 할 것이 없습니다. 스크립트는 결국 보고서를 전자 메일로 보냅니다. – Pranab
@Pranab : "이것은 내 사용을위한 스크립트입니다." 그렇다면 어떤 문제가 있습니까? 왜 그냥 달아나지 않는거야? 왜 엉망이 되니? 그것이 당신을위한 것이라면 - 그것은 단지 이메일을 보냅니다 - 그것은 심지어 웹 페이지가 아닙니다. 왜 간단한 파이썬 스크립트를 작성하지 않는가? –