Необходимо реализовать механизм взаимодействия с псевдо-API отправки писем. Письма поступают в формате XML (см. файл sample.xml). Считается всегда, что формат одинаков и данные полей валидны. Отправка осуществляется запуском сценария sender.py, единственный аргумент - абсолютный пусть до файла писем. Пример запуска:
python sender.py /path/to/file.xml
- адрес http://test.webjet.pro/api.php
- тип запроса POST
- параметры запроса:
- id: формат значения целое число
- message формат значения JSON
{"to":"...","subject":"..."}
- ответы API (HTTP status code):
- 200 - письмо было успешно обработано, статус доставки будет отражен в теле ответа
- 0 - письмо не доставлено
- 1 - письмо доставлено
- 503 - сервис занят, необходимо повторить запрос позднее
- 400 - некорректный запрос (ошибка будет отражена в теле ответа)
- 200 - письмо было успешно обработано, статус доставки будет отражен в теле ответа
Результаты отправки необходимо записывать в БД:
unix-socket /var/run/mysqld/mysqld.sock
username u1
password 984hfwGTw2Fqs22q
database sender
table results
Описание таблицы результатов:
CREATE TABLE `results` (
`id` INT(11) UNSIGNED NOT NULL COMMENT 'Идентификатор письма',
`ts` TIMESTAMP NULL DEFAULT NULL COMMENT 'Время отправки письма',
`delivery_status` TINYINT(1) UNSIGNED NULL DEFAULT NULL COMMENT 'Статус доставки (0|1)',
PRIMARY KEY (`id`)
)
ENGINE=InnoDB
Вместо MySQL можно воспользоваться MongoDB Опишите какие особености реализации искомой задачи проявятся при реализации?
Какие шаги необходимо предпринять, если говорить о параллельном запуске нескольких сценариев (данные в файлах писем для разных запусков могут пересекаться)?