Матрос
ну там в принципе можно и реляционку прикрутить, модуль отдельный есть, IoC сделал, DI тоже
Матрос
но это не суть)))
V
подпишись в каждом обьекте на шину, да и все
Матрос
Ты все таки не совсем понял мой вопрос. Мож я хреново сформулировал, если было непонятно - извиняюсь. Я подписан. уже. Все эти объекты, далее - кролики, инстанцируются на лужайке, и она хранится в памяти. Модуль лужайки припочкован к шине, если приходят внешние сигналы (пожар нахуй!), кролики это считывают и бегут. Если кролик уснул или сдох - это тоже подается на шину. Вопрос в том, что кролик раз в день спит (инфа о том что ему надо спать ниоткуда не прилетает, это в нем самом происходит). Функция сон должна вызываться примерно как в unity3d, то есть через update/fixed update, которая вешается глобально на весь инстанс кролдика и внутри мы прописываем что нам надо делать (спать, жрать, трахаться), И эту функцию мы вызываем с помощью cron'like штуки, которая посылает нам запрос на лужайку типа "всем обновится, сутки прошли"? Или мы делаем отдельные таймауты и интервалы внутри инстансов-кроликов на каждую периодическую деятельность??
Матрос
надеюсь теперь понятно сформулировал
Матрос
на кроликах как-то жизненно
V
У тебя на шине известно когда кролику спать надо или кролик сам об этом знает, а снаружи это не известно?
Матрос
кролик знает, снаружи раз во сколько он спит - нет. снаружи только конфигурация его может быть, которая... скажем так в зависимости от нее он по разному конструктится
Матрос
с шины можнт принудительный сигнал на сон придти конечно же, может. но это нестандартное положение дел на лужайке.
V
я бы тогда по-простому через таймеры сделал, а если проблемы будут то от них и плясать
Матрос
у меня на эту ебаную лужайку с кроликами в контексте апдейтов теперь первая ассоциация - промысел божий или воля человеческая - креационизм против волюнтаризма
Матрос
раз в сутки. это минимум
Таймураз
А максимум?
Матрос
меньше не будет, если мы про периодические обновления.
Матрос
месяц
Матрос
но это предполагается только где-то через год)
Таймураз
А, то есть самое частое- сутки
Матрос
ну по идее да
Таймураз
Тогда нетрезво писать в эвент луп тысячи таймаутов
Матрос
там могут возникать ситуации типа "покорми кроликов" - часа за три до конца суток например, но это вродь дела не меняет
Матрос
ну я могу пулов наплодить
Таймураз
Одна крон задача дергает скрипт, который пробегает по всем объектам и выполняет свое черное дело
Матрос
лужайка-то не одна, на ней все кролики не уместятся)
Таймураз
Не в этом дело Если у тебя каждый объект будет внутри иметь setTimeout- это будет жрать лишние ресурсы
Таймураз
Нет смысла лишнюю абстракцию добавлять прям в каждый объект, когда все равно эта операция должна быть выполнена для всех разом
Матрос
эээээ, не, стоп, дай поясню. мой косяк
V
так в том и дело, тчо не для всех разом, а у каждого по отдельности, как я понял
Матрос
там и то и то - сейчас изображу
Таймураз
Я уже тебя понял
Таймураз
Используй очередь
Таймураз
И пиши туда, что и когда ты хочешь выполнить
Матрос
там может может быть допустим 1000 кроликов - из них 500 будут жрать в 15.00 а из 500 оставшихся 400 трахаться в 16.00. а вот остальные 100 могут вообще всякой хуйней заниматься не по расписанию
Матрос
короче полный хаос
Таймураз
Реализуй очередь на основе ЬД
Таймураз
БД
Таймураз
Потому что если у тебя упадет сервер- из очереди задач все таски вывалятся
Таймураз
Можешь сделать сложнее, использовать нормальную очередь и одновременно писать параллельно статус задач в базу
Таймураз
Чтобы если сервер упал, это все можно было восстановить
Таймураз
Это ты абстракциями говоришь или у тебя там тамагочи на сервере?
Матрос
я сейчас их состояния пишу в бд и восстанавливаю. ну пока что так сделал. активные кролики приходят из кэша, мертвые кролики в монге лежат.
Матрос
не, у меня там почти как MMO, но в финансовой сфере
Таймураз
Лол
Таймураз
финансовая сфера и на монге?
Таймураз
юзай реляционку
Матрос
у меня самих транзакций нет, я логику бизнес-сущностями оперирую. без проводок
Матрос
этим уже не у меня и не мой сервис занимается)
Таймураз
финансовая сфера жестче ммо будет
Матрос
да кстати не сказал бы. сильно проще, в разы. просто надежность нужна другая
Таймураз
я из-за надежности и говорю, что жестче
Матрос
аа
Матрос
понял)
Таймураз
Недовольство игроков и финансовые потери по-разному могут отразиться на разрабе
Матрос
)))
Матрос
слушай, ну хорошо, допустим очередь. что мне делать с теми оставшимися 100 кроликами которые не будут неистово трахаться или жрать как не в себя?
Таймураз
Смотри
Таймураз
Так, тут, думаю, лучше в лс уйти, так как куча мыслей, не связанных с нодой
Таймураз
Ilya
да в жопу эту паранойю "на случай войны"
Ilya
замедляет разработку дико. надеюсь больше не придется так делать
Ilya
ну да. не работает бд == не работает приложение.
Таймураз
Если бы все было так просто, Илья Удивительно, что это вам говорит человек, младше вас почти в 2 раза (скорее всего)
Таймураз
мне всего лишь 37.)
Не хватает 5 лет для того, чтобы быть старше меня в 2 раза
Ilya
ну не всем же биржевой софт писать. да и там в случае сбоя проще тормознуть торги пока на реплику будет переключение
Таймураз
Kons
Кто-нибудь знает, как в статботе считается Flood Ratio?
Aleksand
ну не всем же биржевой софт писать. да и там в случае сбоя проще тормознуть торги пока на реплику будет переключение
там цена миллисекунды 50 млн долларов, оптимизации аппаратные и компиляторные для алгоритмов, нет там никаких реплик это вообще другой мир
Aleksand
50 млн- не с потолка число?
инвестиционный проект оптоволокна между континентами который позволит ускорить пинг на 7 мс стоит 350 млн баксов
Aleksand
то есть в систематический выигрыш 1 мс готовы вкладывать 50 млн баксов
Таймураз
Вот в это я спокойно верю А вот то, что в течение 1 мс можно 50 млн потерять- это другое
Таймураз
Не спорю, просто могу запомнить информацию как есть, а потом некорректные данные приводить)
Aleksand
Вот в это я спокойно верю А вот то, что в течение 1 мс можно 50 млн потерять- это другое
ну проигрыш в миллисекунду делает из компании аутсайдера https://habrahabr.ru/post/183484/
ixplo
А телепортирвать электроны пока дорого? )
Evgeny
Вот в это я спокойно верю А вот то, что в течение 1 мс можно 50 млн потерять- это другое
Знаю чувака который ошибся в алгоритме и наутро проснулся со сломанными ногами.
Evgeny
Прохерил 180КК за две секунды работы