подскажите архитектуру по расчету времени прибытия такси. По websocket у нас приходят данные условно 5 раз/sec. Каждый раз когда человек наводит на новое место отбытие нужно посмотреть в каком то радиусе сколько машин и выбрать с минимальным расстоянием и среднем ото всех. использовать google api. Нужно также учитывать что каждый водитель может выбрать радиус, в котором он согласен ехать. вот как такое сделать используя поменьше ресурсов ? Спасибо
PS Если не в нужную тему пишу то подскажите куда лучше
подскажите архитектуру по расчету времени прибытия такси
-
- Сообщения: 401
- Зарегистрирован: 2011.11.01, 17:29
Re: подскажите архитектуру по расчету времени прибытия такси
слишком общий вопрос. в целом: многопоточный демон + хранилище с персистентностью для заказов + быстрое хранилище без персистентности для геоточек водителей.
-
- Сообщения: 401
- Зарегистрирован: 2011.11.01, 17:29
Re: подскажите архитектуру по расчету времени прибытия такси
zelenin писал(а):слишком общий вопрос. в целом: многопоточный демон + хранилище с персистентностью для заказов + быстрое хранилище без персистентности для геоточек водителей.
Касательно двух других вы о хранение в памяти(redis, mysql memory) и на диске(BD innoDB, MyIsam) ?
Re: подскажите архитектуру по расчету времени прибытия такси
в целом да, но почему mysql? memcache/redis+postgres например, или что-то демоно-нативное (в зависимости от того на чем демон)evgeniy123 писал(а):zelenin писал(а):слишком общий вопрос. в целом: многопоточный демон + хранилище с персистентностью для заказов + быстрое хранилище без персистентности для геоточек водителей.
Касательно двух других вы о хранение в памяти(redis, mysql memory) и на диске(BD innoDB, MyIsam) ?
-
- Сообщения: 401
- Зарегистрирован: 2011.11.01, 17:29
Re: подскажите архитектуру по расчету времени прибытия такси
zelenin писал(а):в целом да, но почему mysql? memcache/redis+postgres например, или что-то демоно-нативное (в зависимости от того на чем демон)evgeniy123 писал(а):zelenin писал(а):слишком общий вопрос. в целом: многопоточный демон + хранилище с персистентностью для заказов + быстрое хранилище без персистентности для геоточек водителей.
Касательно двух других вы о хранение в памяти(redis, mysql memory) и на диске(BD innoDB, MyIsam) ?
postgres не знаю совсем. Websocket(php). данных много и они аппроксимируются через cron. их нужно сохранять для просмотра маршрута за день. потом идут в хранилища.
-
- Сообщения: 401
- Зарегистрирован: 2011.11.01, 17:29
Re: подскажите архитектуру по расчету времени прибытия такси
в гео математики я не силен. Может подскажите как такое сделать. Интересует сам алгоритм выборки побыстрее. Вот человек поставил точку на карту. отослались координаты на сервер. берем радиус 10 км -> выбираем всех водителей(10km). вопрос сразу : как их выбирать ? Одно из условий online или offline . С этим легко можно справиться. есть таблица с привязками user_id ->id connection websocket. идем дальше. У нас 200 водителей. Не каждый согласен так далеко ехать. Для каджо нужно узнать его расстояние на которое он согласен ехать больше или меньше 10 км. отсеить тех кто не согласен и смотреть среднее по сумме всех такси а также минимальный дистанцию. Вот такой алгоритм надумал.Тогда я смогу кидать в нормальную таблицу аппроксимировании маршрут после окончания заказа. удаляя из временного хранилища. Можно взять -10% из всех таксистов и вычислить время прибытия начиная с самых быстрых(1-5min) в SELECT и вычислить через API google время прибытия до минуты. -> передать клиенту. Какие замечания или рекомендации ?