<div dir="ltr">Ну да, от юз кейса зависит. У нас не тысячи. Сотня, пожалуй, это максимум, сколько одновременно может быть. В одну небольшую запись на несколько килобайт отлично влезает. Хранится в SQL, закодировано Storable::freeze, доступ всегда по primary key, ну и кешируется в memcached. 99.9% обращений - на чтение.</div><br><div class="gmail_quote"><div dir="ltr">On Wed, Dec 23, 2015 at 4:41 PM Oleg Alistratov <<a href="mailto:ali@ali.org.ua">ali@ali.org.ua</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><br>
<br>
23.12.2015, 17:29, "Alexander Lourier" <<a href="mailto:aml@rulezz.ru" target="_blank">aml@rulezz.ru</a>>:<br>
>> Как обычно, детали роляют. Прямо сейчас вот осбуждаем, где хранить признак, что юзер уже был празднично обрадован: в куке, в сессии или в базе, учитывая еще, что юзер может быть опоздравлен как на одном только клиенте (во время Ч в вебсокет будет выдана структурка), так и с задействованием шаблонизатора на бэкенде (время Ч уже пропустил и в сокет ему ничего не надуло). Ну и юзер не должен слишком долго радоваться, не должен быть обрадован дважды, и т.д. и т.п.<br>
><br>
> У меня за эту механику отвечает сущность "модификаторы игрока". У игрока может быть любое количество модификаторов. У модификатора есть код, "значение" (для разных целей) и срок годности. Любой модуль может в любой момент проверить $character->modifier('newyear_gift_presented'). Если модификатора нет (или он стух), то вернётся undef. В момент выдачи подарка под ёлкой, ставится модификатор на полгода - он стухнет летом, когда он уже никому не нужен, и к следующему новому году его снова ни у кого нет. Проверка стухания делается в момент вызова modifier (т.е. физически запись есть, но она не возвращается). При очередном обновлении модификатора (когда запись в БД идёт), стухшие модификаторы вычистятся из записи тоже.<br>
<br>
Ага, штука у нас такая же по сути. Но говорю ж, дьявол в деталях :)<br>
<br>
Механизм этот на самом деле не для новых годов делается. Событий, которые придут юзеру, может быть сотни и тысячи, но большая часть из них живет не более получаса. Вот и не хочется базу раздувать, а обойтись куками и редисами. Тако вот.<br>
<br>
<br>
>> 23.12.2015, 16:48, "Ivan Serezhkin" <<a href="mailto:ivan@serezhkin.com" target="_blank">ivan@serezhkin.com</a>>:<br>
>>> ну что господа, хвастающиеся своим знанием по егэ,<br>
>>><br>
>>> А расскажите ка как у вас в проектах реализован функционал нового года,<br>
>>> который где-то в начале нового года должен включится, отработать новый<br>
>>> год, и к концу каникул выключится.<br>
>>><br>
>>> или у вас ответственный деплой 31 вечером? Не, тогда лучше молчите.<br>
>>><br>
>>> В свою очередь, через некоторое время обещаю обещать рассказ про миксины.<br>
>>><br>
>>> --<br>
>>> WBR, Vany<br>
>>><br>
>>> --<br>
>>> Moscow.pm mailing list<br>
>>> <a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
>><br>
>> --<br>
>> Oleg Alistratov<br>
>> --<br>
>> Moscow.pm mailing list<br>
>> <a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
> ,--<br>
> Moscow.pm mailing list<br>
> <a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
<br>
<br>
--<br>
Oleg Alistratov<br>
--<br>
Moscow.pm mailing list<br>
<a href="mailto:moscow-pm@pm.org" target="_blank">moscow-pm@pm.org</a> | <a href="http://moscow.pm.org" rel="noreferrer" target="_blank">http://moscow.pm.org</a><br>
</blockquote></div>