Python Script On Webserver - PullRequest
       11

Python Script On Webserver

0 голосов
/ 30 марта 2012

У меня есть скрипт Python, который загружает N количество изображений с веб-сайта.Я запускаю его на веб-сервере Ubuntu 10.04.Например, download.py загружает 10000 изображений с веб-сайта, распечатывает в файл информацию о произошедших ошибках.После загрузки N изображений он выходит.Обычно на локальной машине я запускаю его так:

sudo python download.py

Как я могу запустить его на веб-сервере, чтобы он всегда работал, и когда он закончится, он должен остановиться?Я запускаю его вручную, когда мне нужно (задания cron не нужны).цикл for в скрипте:

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

Если скрипт останавливается из-за некоторых ошибок, мне нужно будет снова запустить его с начала, пока я не сохраняю данные для запуска из места остановки.

Ответы [ 4 ]

0 голосов
/ 03 апреля 2012

В моей ситуации я могу запустить его как: sudo nohup python download.py

0 голосов
/ 30 марта 2012

Вы можете создать службу демона python, которая будет запускать скрипт

0 голосов
/ 03 апреля 2012

Используйте диспетчер процессов, такой как Супервизор и другие.

0 голосов
/ 30 марта 2012

На вашем сервере вы можете использовать цикл обработки событий, предоставляемый 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()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...