R50 b19a03ee0c6e1b8454cc8d82ad8acb5c
Architect/Full-stack developer

Сервис обновления товаров

Добавлено 09 мар 2018 в 20:12
Код сервиса выложен на тут.
Текстовые паттерны вида <некоторый текст> перекрывают конфиденциальную информацию.

Поставленная задача:
Реализовать получение некоторых данных посредством REST API, и при их помощи обновлять цены и остаток товаров на сайте.

Анализ:
Движок сайта не позволяет обновлять товар с внешних ресурсов без установки дополнительных плагинов. Дополнительные плагины не подошли с технической точки зрения.
Имеется вариант разработки необходимого плагина с нуля.
Также имеется ssh root доступ к самому серверу, на котором хостится сайт.
На сервере ОС Debian. Установленные пакеты позволяют написать скрипт на Python 2|3.
Ruby - нет, NodeJS - нет.
Есть возможность написания сервиса на Go с последующей компиляцией.
Заказчик имеет опыт разработки на PHP, даже имеется собственная реализация данного сервиса, но с ограниченным функционалом.
Количество обрабатываемых записей не превышает 25 000.
Достаточно обновления цен раз в сутки.
Панель администратора хостинга содержит функционал создания cron-задач.

Решение:
Реализовать скрипт/сервис на Python 3. Код данным языке самый читаемый. Заказчик будет иметь возможность доработать его сам. Именно поэтому параметры работы скрипта не передаются ему при вызове из cron-задачи, а располагаются прямо в нем в виде переменных настроек в начале файла, что максимально похоже на стилистику PHP. В противном случае код парсинга аргументов вызова скрипта только увеличил бы код скрипта, а значит увеличил бы порог вхождения.
Времени затрачено: 12 часов.
Bba506907a