Каким способом запускать тяжелый скрипт-обработчик?
Всем привет
Ситуация:
Есть обычный сайт на Django, который имеет 4000 посетителей в сутки. Хостится на 2000мгц, 500 оперативки. В общем, хватает.
На сайте есть 20000 карточек партнерских товаров, ценник в которых нужно корректировать примерно раз в 10 дней. Ценник можно взять только на одном месте - на сайте партнеров. Причем они этот ценник не отдают отдельно, приходится парсить html и с помощью beautifulsoup вычленять цену.
Если я запускаю скрипт на своем дев-компе, то он работает 25 минут. И у меня есть уверенность, что если я его запущу на хостинге, то хостинг просто ляжет.
1. Взять хостинг пожирнее.
2. Запускать скрипт на мощном компе, формировать компактную выжимку данных, которую скрипт на хостинге сможет быстро прочитать и внести в базу, а потом заливать её на web-сервер.
2. Писать быстрый парсер. Возможно, не на Python.
0. Думать не надо - надо проверить
0.1 Проверить, какие ресурсы скрипт отьедает активнее всего
1. Если все ест равномерно = man nice
Если что-то больше - google cgroups
Скрипт внедрить в джангу в виде django commands
Если у вас синхронный скрипт, то он работает долго, но ресурсов не ест - он просто долго ожидает получения хтмл = вообще ничего делать не нужно
Не используйте BS - lxml делает тоже самое и без обертки в виде BS
Переписать на scrapy и затроттлить до приемлемого уровня. Ну или в свой скрипт навтыкать time.sleep во все циклы, пусть скрипт работает не 25, а 250 минут, вряд ли это так принципиально. Зато ресурсов он будет потреблять мизер. Ну и правильно выше пишут, сначала надо выяснить точно ли он положит хостинг и если да, то чего именно ему не хватит.