2012-03-30 8 views
0

나는 웹 사이트에서 N 개의 이미지를 다운로드하는 파이썬 스크립트를 가지고있다. 웹 서버 우분투 10.04에서 실행합니다. 예를 들어, download.py는 웹 사이트에서 10000 개의 이미지를 다운로드하고 발생한 오류를 파일에 인쇄합니다. N 개의 이미지를 다운로드 한 후 종료합니다. 일반적으로 로컬 컴퓨터에서 다음과 같이 실행합니다.웹 서버의 파이썬 스크립트

sudo python download.py 

웹 서버에서 항상 실행 중이며 끝날 때 어떻게 끝내야합니까? 필요한 경우 수동으로 실행합니다 (cron 작업은 필요하지 않음). 스크립트 루프 : 스크립트가 일부 오류로 중단

for i in range(1, N): 
    #do download 

경우 나 정지 장소에서 실행하는 모든 데이터를 저장하지 않는 동안, 나는 처음부터 다시 실행해야합니다.

답변

0

내 상황에서는 다음과 같이 실행할 수 있습니다. sudo nohup python download.py

0

서버에서 Twisted가 제공하는 이벤트 루프를 사용하여 일정한 간격으로 실행되도록 할 수 있습니다.

from twisted.internet import task 
from twisted.internet import reactor 

timeout = 60.0 

def downloadlinks(): 
    # Have a logic to start download. 
    # One previous download is over. 
    if num_images_downloaded < 1000: 
     pass # previous download still in progress 
    else: 
     start_download() 


    #do work here 
    pass 

l = task.LoopingCall(doWork) 
l.start(timeout) # call every sixty seconds 

reactor.run() 
0

사용하여 실행됩니다 파이썬 데몬 서비스를 만들 수 있습니다 다른 사람의 사이에서 Supervisor 같은 프로세스 관리자.