Size: a a a

Node.js — русскоговорящее сообщество

2020 May 04

ПА

Попов Алексей... in Node.js — русскоговорящее сообщество
Sergey 🛸
Это костыль. Всегда может случится так что прочитал - было всё хорошо, а в следующую секунду менеджер удалил
Да, вот я хз че с консистентностью
источник

PS

Pavel Shakhov (pongo... in Node.js — русскоговорящее сообщество
Попов Алексей
я вот и думаю, читать данные с CRM, ложить их в redis например, на сайте выводить из редиса, паралельно процесс работает непрерывно этот кеш обновляет, т.к. я не могу найти в API вообще данные о том, какой товар изменен или удален
Может разрабам црм напишешь?
источник

YG

Yury Golikov in Node.js — русскоговорящее сообщество
Sergey 🛸
Это костыль. Всегда может случится так что прочитал - было всё хорошо, а в следующую секунду менеджер удалил
В любом случае информация на чтение это stale дата или кеш. Не stale это всегда только при записи, так что разницы тут нет.
источник

E

Envy in Node.js — русскоговорящее сообщество
Попов Алексей
Здравствуйте, кто ни будь разрабатывал сайты данные которых лежат на внешней CRM, т.е. заказчик говорит, вот мол: - "У меня все в CRM 100500 товаров" хочу сайт, чтобы все работало. На этой CRM внешней конечно есть ограничения на выполнения N-запросов в секунду и одновременно выполнять эти N-запросы.
По сути, берем данные из API, грузим себе куда ни будь в БД, т.е. нужно организовать некую синхронизацию.
У кого был такой опыт, как быть с консистентностью данных?
Например, взяли мы данные, положили у себя, тут пользователь на сайте оформляет заказ, а тут менеджер удаляет какую-то категорию товаров, переименовывает.
У многих сервисов, в том числе CRM ограничения по апи распространяются на ip адрес, с которого идут запросы. Может, имеет смысл уточнить этот момент? В моём понимании, это помогло бы избежать лишней головной боли
источник

YG

Yury Golikov in Node.js — русскоговорящее сообщество
Попов Алексей
Да, вот я хз че с консистентностью
У тебя будет просто не атомарная а eventual консистетность. Почитай как это решается.
Если ситуация редкая, просто сделай правильную обработку. Например юзер купил товар, которого уже как бы нет. Ответь покупателю что все ок, а дальше если прийдется инфа, что такого товара уже нет, то отправь пользователю сообщение с извинениями.

Расскажи о ситуации заказчику. Можно например в этих редких случаях давать скидку человеку или еще чего
источник

ПА

Попов Алексей... in Node.js — русскоговорящее сообщество
Envy
У многих сервисов, в том числе CRM ограничения по апи распространяются на ip адрес, с которого идут запросы. Может, имеет смысл уточнить этот момент? В моём понимании, это помогло бы избежать лишней головной боли
Не более 100 запросов за 5 секундный период
Не более 5 параллельных запросов от одного пользователя
Не более 15 параллельных запросов от аккаунта
Не более 500 параллельных запросов с одного ip-адреса
Не более 10 Мб данных в одном запросе, отправляемом на сервер
источник

E

Envy in Node.js — русскоговорящее сообщество
Попов Алексей
Не более 100 запросов за 5 секундный период
Не более 5 параллельных запросов от одного пользователя
Не более 15 параллельных запросов от аккаунта
Не более 500 параллельных запросов с одного ip-адреса
Не более 10 Мб данных в одном запросе, отправляемом на сервер
Понял Вас
источник

ПА

Попов Алексей... in Node.js — русскоговорящее сообщество
Ну и каждый аккаунт платный соответственно
источник

E

Envy in Node.js — русскоговорящее сообщество
Это не amoCRM, случаем?
источник

ПА

Попов Алексей... in Node.js — русскоговорящее сообщество
не, мой склад
источник

E

Envy in Node.js — русскоговорящее сообщество
Аааа
источник

YG

Yury Golikov in Node.js — русскоговорящее сообщество
Попов Алексей
Ну и каждый аккаунт платный соответственно
Распределенные системы это не что-то новое, посмотри как это решается там.
источник

ПА

Попов Алексей... in Node.js — русскоговорящее сообщество
Envy
Аааа
знакомы с этим чудом?
источник

ПА

Попов Алексей... in Node.js — русскоговорящее сообщество
Yury Golikov
Распределенные системы это не что-то новое, посмотри как это решается там.
Спасибо, копаю инфу как раз таки
источник

E

Envy in Node.js — русскоговорящее сообщество
Попов Алексей
знакомы с этим чудом?
К счастью, не близко)
источник

YG

Yury Golikov in Node.js — русскоговорящее сообщество
Попов Алексей
Спасибо, копаю инфу как раз таки
Но все это разрешается примерное как я описал.
Еще как вариант посмотри можно ли какие-нить фильтры, мидлвары сделать или плагины в CRM, чтобы перехватывать запросы к crm.
Мб есть возможность подписаться на изменения?
источник

ПА

Попов Алексей... in Node.js — русскоговорящее сообщество
Yury Golikov
Но все это разрешается примерное как я описал.
Еще как вариант посмотри можно ли какие-нить фильтры, мидлвары сделать или плагины в CRM, чтобы перехватывать запросы к crm.
Мб есть возможность подписаться на изменения?
Да вот доку уже туды-сюды исчитал, пытаюсь найти... нашел что-то вроде хуков, но пока не понял как там с ними быть
источник

YG

Yury Golikov in Node.js — русскоговорящее сообщество
Попов Алексей
Да вот доку уже туды-сюды исчитал, пытаюсь найти... нашел что-то вроде хуков, но пока не понял как там с ними быть
Ну собственно это оно и есть лол) Когда достаточно просто нормально прочитать доку)
https://dev.moysklad.ru/workbook/api/remap/1.1/ru/webhooks.html
"Мы советуем использовать вебхуки, чтобы взаимодействие МоегоСклада с вашим интернет-магазином или приложением в реальном времени, и вы могли избавиться от периодических запросов изменений."
источник

ПА

Попов Алексей... in Node.js — русскоговорящее сообщество
Yury Golikov
Ну собственно это оно и есть лол) Когда достаточно просто нормально прочитать доку)
https://dev.moysklad.ru/workbook/api/remap/1.1/ru/webhooks.html
"Мы советуем использовать вебхуки, чтобы взаимодействие МоегоСклада с вашим интернет-магазином или приложением в реальном времени, и вы могли избавиться от периодических запросов изменений."
Да, точно... Получается, короче говоря (очень грубо), гружу данные, подписываюсь хуками на события и уже обрабатываю (обновляю, удаляю и т.д.) товары если манагеры чтото изменили
источник

ПА

Попов Алексей... in Node.js — русскоговорящее сообщество
данные ложу просто в elasticsearch чтобы полнотекстово искать в магазине
источник