Сохранение состояния приложения в Node.js

Как сохранить состояние приложения для приложения node.js, состоящего в основном из HTTP-запросов?

У меня есть скрипт на Node.JS, который работает с RESTful API для импорта большого количества (более 10 000) продуктов в приложение электронной коммерции. API имеет ограничение на количество запросов, которые можно сделать, и мы пытаемся преодолеть это ограничение. При предыдущем запуске сценарий завершился с ошибкой : подключите ETIMEDOUT, вероятно, из-за превышения ограничений API. Я хотел бы иметь возможность попробовать подключиться 5 раз и, если это не удастся, возобновить через час, когда лимит будет восстановлен.

Также было бы полезно сохранять прогресс на случай сбоя (отключение питания, сбой сети и т. д.). И иметь возможность возобновить сценарий с того места, где он был остановлен.

Я знаю, что Node.js работает как гигантская очередь событий, все HTTP-запросы и их обратные вызовы помещаются в эту очередь (вместе с некоторыми другими событиями). Это делает его главной целью для сохранения состояния текущего выполнения. Другим приятным (не совсем необходимым для этого проекта) будет возможность распределить работу между несколькими машинами в разных сетях для увеличения пропускной способности.

Существует ли способ сделать это? Каркас наверное? Или мне нужно реализовать это самостоятельно, в этом случае будут оценены любые полезные ресурсы о том, как это можно сделать.

5
задан Michael Yagudaev 16 June 2012 в 19:37
поделиться