Форум сайта python.su
Посоветуйте решение пожалуйста. Есть скрипт, который парсит данные с разных сайтов в несколько потоков. Сейчас хочу сделать для него web-морду с кнопками запуска/остановки. Каким образом лучше всего этот скрипт запускать/останавливать? Через какие средства?
Офлайн
https://github.com/mozilla-services/circus но сам не юзал, есть старый добрый supervisord, но писан любителями zope B)
Офлайн
Что-то примеров по нему крайне мало, нету нигде описания работы с ним?
Офлайн
кроме examples/ в коде, не видел
Офлайн
Офлайн
Кстати, хочу уточнить у автора.
Что вы понимаете под средствами?
Речь идет о серверном или клиент-серверном механизме?
Одно дело, если вам нужно просто управлять процессами на серверной стороне.
Другое, полностью реализовать взаимодействие между клиентом и сервером.
Если только первое, то еще посмотрите sh и execnet.
Если второе, есть 2 варианта: WebSockets и обычный периодический опрос сервера. Тут вопрос требует развернутого ответа и поэтому для начала неплохо почитать о достоинствах/недостатках и сделать однозначный выбор.
Офлайн
По-моему клиент-серверный, но я, честно говоря не понял. То что я хочу, я написал в первом посте, мне казалось там всё понятно и просто. Попробую поподробней. У меня есть консольный скрипт-парсер, который работает в несколько потоков и довольно долго (несколько часов, может пару дней). Я могу реализовать GUI в этом скрипте, то есть у меня будет окошечко или несколко с кнопками запуска/остановки, может быть какие-то отчеты, просмотр логов и т.д. Ну вот, собственно, мне это и надо, только вместо GUI нужен веб. Я хочу запускать скрипт не из консоли, а заходить в админку на сайте, выставлять настройки, запускать этот скрипт, иметь возможности любой момент остановить и т.д. Я просто не знаю как это делается, если дело касается веба.
P.S. Пока разбираюсь с celery, вроде оно, но может всё гораздо проще?
Отредактировано plusplus (Сен. 26, 2012 15:25:38)
Офлайн
plusplusУправление скрипт-парсером скриптом с сервера - серверная часть.
заходить в админку на сайте, выставлять настройки, запускать этот скрипт, иметь возможности любой момент остановить и т.д. Я просто не знаю как это делается, если дело касается веба.
Офлайн
Наверное да, действительно избыточно. Тогда вот такой вариант. Остановился на sh. Как я себе это представляю. Пользователь заходит на сайт, нажимает кнопку “Запуск”, во вью срабатывает код, что-то вроде
process = sh.python('parser.py', _bg=True) #Сохраняем в базе pid = process.pid
Офлайн
Как оказалось вообще пришел к такому вопросу, а зачем вообще нужны сторонние модули? Почему нельзя воспользоваться встроенным - subprocess.Popen?
С sh проблемы, при указании запускать в бекграунде, веб-страница всё равно блокируется.
Отредактировано plusplus (Сен. 27, 2012 11:38:10)
Офлайн