#node.js #express #salesforce
#node.js #экспресс #salesforce
Вопрос:
У меня есть Node Express API, который действует как брокер. Он отвечает за синхронизацию данных между несколькими системами.
В хронологическом порядке…должно произойти следующее (и я запускаю это с node-cron
)
-
Express API загружает данные из ERP и отправляет их в свой собственный экземпляр Mongo a. Некоторые операции выполняются здесь с помощью Mongo
-
Затем Express API должен загрузить данные из Salesforce (а также выполнить их обновление в своей собственной базе данных) b. Выполняются дополнительные вычисления
-
Экспресс-API отправляет запрос на массовое обновление API в систему Salesforce
-
Express API отправляет запрос на массовое обновление API в систему Salesforce
Как вы можете видеть, это беспорядочно, и многое может пойти не так, если одна часть сломается. В настоящее время я вызываю каждое задание с интервалом в несколько минут друг от друга, чтобы убедиться, что загрузка / обработка всех данных завершена. Какой лучший способ сделать это? Продолжить, только если установлено какое-либо поле?
Комментарии:
1. Почему бы не дождаться каждого шага, прежде чем продолжить. Если некоторые из них могут выполняться параллельно, вы можете
await Promise.all([prom1, prom2])
, прежде чем двигаться дальше…2. Мм … Я не использовал
Promise.all
так часто, но я всегда представлял, что его вариант использования будет для чего-то вроде массовых запросов к БД. При этом, я полагаю, он мог бы работать для взаимодействия с несколькими независимыми API через сеть3. Я хотел просто заставить задание b дождаться завершения задания a (где задание b зависит от задания a). Я только что добавил, что там, где задание c зависит от a и b, но a и b не зависят друг от друга, вы можете использовать
Promise.all
, чтобы дождаться завершения их обоих перед выполнением c