Fetch Postgre DB data and POST it to web URI (JSON)

Цена договорная • наличный расчёт, безналичный расчёт, электронные деньги
14 января 2014, 17:48 • 10 откликов • 3 просмотра
привет, есть Postgre БД, которую нужно регулярно "экспортировать" (в формате JSON) на определённый URL, и делать минимальное логгирование прогресса. Пояснение: сам web-сервис для приёма данных писать не требуется: достаточно лишь обговорить протокол "транзакционности" передач. Задачи:

  1. БД экспортируется не "as is" (т.е. каждая таблица -> в POST), а "сборные" структуры данных. Их обсудим вместе. На экспорт будет порядка 5-6 сущностей.

  2. имплементация на скриптовом языке (PHP preferred): чтобы максимально упростить добавление новых таблиц/данных на экспорт в дальнейшем.

  3. необходимо вызывать "экспортёр" регулярно (раз в 15 минут), через "at" command for MS Windows. Т.е. от вас нужен формат вызова из командной строки.

  4. экспорт будет делаться на URL типа: https://mysite.com/json_reader

    Однако отлаживать будем скорей всего на HTTP.

  5. Web-сервер должен уметь понять, переданы ли данные целиком, или произошла ошибка соединения.
    Как поймёт - предлагайте варианты.

    Например, мне приходит в голову "обрамлять" поток JSON-данных некими "<begin>" и "<end>" маркерами и делать 3 последовательных POST-а:
    * послать "JSON:begin"
    ** затем сами данные
    *** затем "JSON:end"

    При отсутствии маркера "<end>" web-сервер "откатит" данные и будет ждать следующего по очереди транша.

    Либо предложите свой вариант.

  6. нужно ведение простого лога вида "export_pg.log" формата:
    [date time] transaction start
    [date time] transaction finished successfully/failed. Transported XX records from NN tables in total.

  7. NFR: нагрузка на проц компа должна быть минимальной/невысокой.
    Аццкий скрипт, который подвешивает систему на несколько секунд - не наш выбор.

P.S. понимаю, что через Windows Service было бы цивильнее делать, но мне нужна простота изменения, а это - скриптовые языки, в моем понимании.
Отзывы
R50 a09636fd14c46e1c7cee8a764489a887
Фрилансер
Приятный в общении заказчик.
ТЗ по заданию было точным, возникающие вопросы по задаче решались мгновенно, заказчик все понимает и идет на встречу при решении проблем.
О заказчике осталось положительное впечатление.
Готов работать с ним и впредь!
5 лет назад