Dmitry
Keystone обычная, хорошая CMS ничего особого там нет. Достаточно удобная
GG
Всем привет. Ребят подскажите по следующему вопросу: Есть поиск, обращение к которому осуществляется через консольную команду, которую я в свою очередь вызываю с помощью shelljs.exec(), результат содержит список от 0 до 3 водителей. Создаю таймеры для каждого водителя, по истечению которого водителю отправляется сообщение по вебсокету о том, что пришёл новый заказ. Проблема в том, что клиентов, которые инициируют поиск, может быть несколько. И может произойти такая ситуация: 2 клиента которые находятся рядом инициируют поиск, и поиск находит одного и того же водителя. Но один и тот же водитель по логике не может получить сразу 2 сообщения одновременно. Что я пробовал: 1. Использовать getset REDIS, и разрешал отправлять сообщение внутри таймера, только в том случае, если вернулось null, остальные таймеры где была отправка, просто обнулялись. (Решение не очень получилось как мне кажется) 2. Использовал флаг, что водитель учавствует в поиске, но и это тоже особо не помогло, т.к. сперва всё равно отрабатывает поиск, а уже потом из него вытаскивается id водителя, по которому ставится флаг в хранилище. Т.е. 2 запроса пришло, 2 поиска отработало. 1 поставил флаг, но второй то не знает об этом, поэтому нужен ещё один запрос сразу после поиска, что по сути тот же самый вариант. Подскажите как можно это всё построить так чтобы не было race conditions и так далее. Думаю все эти запросы сериализовать через сервер очередей. Но как при этом будет выглядеть решение — пока не вижу.
Просто. Используй. Бд. Как все. Нормальные люди
AlexMist
Программу для хоткеев под винду посоветуете? 😬
jstclmnm
всем привет! подскажите, кто сталкивался с таким: при запуске js файла через node js в консоли выдает ошибку "Попытка записи в несуществующий канал."
GG
Попробуй запустить чистый js файл)
Nurik
Просто. Используй. Бд. Как все. Нормальные люди
Да, уж. А я по вашему что использую ?
GG
Да, уж. А я по вашему что использую ?
Хз, ты что-то через exec() пускаешь
Rem1te
Всем привет. Ребят подскажите по следующему вопросу: Есть поиск, обращение к которому осуществляется через консольную команду, которую я в свою очередь вызываю с помощью shelljs.exec(), результат содержит список от 0 до 3 водителей. Создаю таймеры для каждого водителя, по истечению которого водителю отправляется сообщение по вебсокету о том, что пришёл новый заказ. Проблема в том, что клиентов, которые инициируют поиск, может быть несколько. И может произойти такая ситуация: 2 клиента которые находятся рядом инициируют поиск, и поиск находит одного и того же водителя. Но один и тот же водитель по логике не может получить сразу 2 сообщения одновременно. Что я пробовал: 1. Использовать getset REDIS, и разрешал отправлять сообщение внутри таймера, только в том случае, если вернулось null, остальные таймеры где была отправка, просто обнулялись. (Решение не очень получилось как мне кажется) 2. Использовал флаг, что водитель учавствует в поиске, но и это тоже особо не помогло, т.к. сперва всё равно отрабатывает поиск, а уже потом из него вытаскивается id водителя, по которому ставится флаг в хранилище. Т.е. 2 запроса пришло, 2 поиска отработало. 1 поставил флаг, но второй то не знает об этом, поэтому нужен ещё один запрос сразу после поиска, что по сути тот же самый вариант. Подскажите как можно это всё построить так чтобы не было race conditions и так далее. Думаю все эти запросы сериализовать через сервер очередей. Но как при этом будет выглядеть решение — пока не вижу.
Проставлять флаг не когда ему ушло сообщение, а когда его выбрал поиск ?
Nurik
Хз, ты что-то через exec() пускаешь
Это поиск, консольная утилита, т.к. поиском пользуются так же другие сервисы. То что приходит в ответ я могу контроллировать только входными параметрами. А вот водители у меня в БД как и положено.
Nurik
Проставлять флаг не когда ему ушло сообщение, а когда его выбрал поиск ?
Да, я тоже так подумал изначально. Но получилось вот что: 2 клиента которые находятся рядом, делают 2 запроса и тогда 1-й получает список из 3 водителей , а второй не получает никого, при условии, что кроме этих трех водителей никого нет рядом. Я ХЗ насколько это правильно, возможно лучше вообще отказаться от идеи 3-х водителей, а лучше сразу по одному искать каждый раз.
Rem1te
Пошли в личку
Mikhail
Мужики поделитесть опытом? Какой API лучше юзать чтобы при вводе адреса показывались саджеты? Yandex?
Michael
а адреса только российские?
Michael
зависит же от целевой аудитории: если мир, то google, если снг, то скорее яндекс, если упёрлись в ограничения первых или вторых, что-то на основе osm
Anton
если только российсике то можно еще посмотреть в сторону КЛАДР и ФИАС, и самому нагородить апи поверх этих данных
Mikhail
Такое нашел: https://dadata.ru/api/suggest/#request-address
Mikhail
Еще вопрос кароче из клиента обращаюсь к api экспресса нода запрос дальше шлет как же мне отрубать предыдущие запросы если они станут не нужны?
Mikhail
batchRequests же про это?
Nurik
Ребят, подскажите как в express в sequelize убрать вывод запросов бд, определенных только, в консоли. ПРосто частые запросы сильно засоряют консоль.
Nurik
Я не знаю
Вы прям ответили так, как будто моё сообщение было запросом на сервер.)) Ахах.
Mikhail
Зато честно :)
GG
logging: false
Nurik
Но тогда оно вырубает вообще всё логирование. А мне как бы нужно вырубать логирование на уровне некоторых запросов.
Sergey
о ништяк определить свою функцию logging
Nurik
Догнал. Спасибо!
GG
кароче) https://stackoverflow.com/questions/21427501/how-can-i-see-the-sql-generated-by-sequelize-js
Lev
Каким инструментом лучше всего парсить жсоны по таймеру? максимум что могу придумать это использование модуля request в бесконечном цикле
Lev
угу
Lev
нашел node-schedule
Lev
буду пробовать
Aleksand
угу
а цикл зачем?
Lev
я не очень умный
Таймураз
Что на ноде есть интересного с генерацией кода наподобие yii?
Roman
Что на ноде есть интересного с генерацией кода наподобие yii?
swagger команда упарывается по кодогенерации
Aleksand
тут было как-то рубилово типа что выбрать для БД? Олег Бартунов с бенчмарками посгреса против монги https://youtu.be/WPxsppNZyzc?t=23057
Aleksand
по всем вариантам Postgres сильно лучше MongoDB
Ivan
Всем мир Работаю в Digital Design middle web-developer'ом (это всё, куда можно js засунуть). В этом я и специалист. Получаю удовольствие от разработки под react, страдаю от разработки под angular. Люблю поговорить на околофронтендную тему, делиться опытом, убеждать людей в том, что пробелы, а не табы. Сообщество интересно потому что ну а как иначе-то? СПБ. Про чат узнал из @javascript_jobs. #whois
Konstantin
по всем вариантам Postgres сильно лучше MongoDB
Люди до сих пор сравнивают монгу с реляционками с точки зрения производительности?
Konstantin
Гляну, но не с телефона. Может краткое резюме?
Dmitrii
тут недавно спрашивали про control-flow на подобии как в библиотеке async, только для async/await - вот интересный пакет https://www.npmjs.com/package/awaiting
Gleb
тут недавно спрашивали про control-flow на подобии как в библиотеке async, только для async/await - вот интересный пакет https://www.npmjs.com/package/awaiting
Сильно внимательно не вчитывался, но ведь есть же Bluebird с богатым набором методов для работы с промисами. В чём тогда смысл?
Dmitrii
есть вполне как аналог да
Dmitrii
там кстати в пакете есть описание почему нет
Дима
Having multiple, conflicting definitions of Promise in a codebase means you now have to check the capabilities of a given Promise before using it
Дима
Автор тупо не в курсе про смысл и существование Bluebird.try
Дима
Уж если и юзать замену промисам, то фьючерсы, а это полумеры какие-то
Дима
чет не вижу смысла тащить bluebird
Ну если у автора такая прооблема. Можно не тащить, Promise.try можно самому написать. Его фича в том, что после него вся цепь вызовов будет обернута исключительно в начальный вариант
Aleksand
Гляну, но не с телефона. Может краткое резюме?
постгрес как nosql-хранилище быстрее и надежнее, у монги и прочих фактически нет серьезного будущего
Дима
В отличии от обычного. Его либа это кстати не решает, а только мешает)
Дима
не видел реализации в жс
https://github.com/fluture-js/Fluture
Aleksand
тут недавно спрашивали про control-flow на подобии как в библиотеке async, только для async/await - вот интересный пакет https://www.npmjs.com/package/awaiting
небогато, но лучше чем ничего, может что-то кто-то в итоге соберет годное и стабильное
Дима
я чет не понимаю твоей позиции
Ну вот автор жалуется что у него в проекте куча имплементаций промисов и каждый раз приходится тестить их на наличие фич. Я на это замечаю, что для его безнадёжного положения существует паттерн Promise.try и его аргумент не катит
Дима
Бтв, его апи через fluture спокойно и реализуется
Дима
Жирный плюс фьючерсов в том, что с их подходом асинхронные операции нормально типизируются, потому что Reject ветка имеет адекватный тип
Sergey
интересная штука
Sergey
но все равно на коллбэках
Дима
Как и промисы
Sergey
для промисов есть async/await
Дима
Ты думаешь с ними он не работает?)
Sergey
начал читать доку, пока не увидел
Sergey
нашел методы *P
Gleb
постгрес как nosql-хранилище быстрее и надежнее, у монги и прочих фактически нет серьезного будущего
Шардинг из коробочки? Нет, конечно, если у вас большой проект или требуется сразу начать обрабатывать кучу запросов, самое то - взять PostgreSQL.
Дима
начал читать доку, пока не увидел
Так как futures можно вызывать повторно, то ты просто вызываешь asyncIO( val ).promise() для получения нового промиса
Дима
В идеале это кстати вообще не должно требоваться) Потому что можно прозрачно заюзать с ними Maybe или Either
Sergey
пошел изучать... спасибо
Aleksand
Шардинг из коробочки? Нет, конечно, если у вас большой проект или требуется сразу начать обрабатывать кучу запросов, самое то - взять PostgreSQL.
ну вот да, если твой проект рванет то ты не захлебнешься с ним хотя бы, есть проекты которые подняв хайп умирали тупо потому что не смогли переварить аудиторию
Sergey
только не пойму, почему .bimap принимает сначала reject, потом resolve
Sergey
да и .fork тоже