Васильев Виктор
Ну сами клиенты об оффлайне тебе точно не расскажут
Васильев Виктор
особенно если у них оффлайн внезапно начался
Васильев Виктор
Просто можешь иметь допустим время последнего обращения к серверу и проверять если допустим да Н промежуток времени прошел то можно считать оффлайн
Васильев Виктор
А зачем вытаскивать все? Почему в БД запросом не выбирать только то что нужно?
Anonymous
Anonymous
Просто на эти операции много ресурсов
Anonymous
Запустить поток чтобы проверял у всех время последнего обращения и вешал оффлайны?
Васильев Виктор
А тебе нужна в реальном времени информация?
Anonymous
Anonymous
Типа будет собирать инфу при отрисовке html
Васильев Виктор
Ну тогда поток ведь и не нужен. СОотстветсвеннои нагрузка будет не существенная же
Васильев Виктор
Или сколько у тебя пользователей?
Васильев Виктор
1) Это тогда преждевременная оптимизация. Оптимизировать можно бесконечно
2) Ну давай подумаем что ты подразумеваешь под большим объемом? Допустим 100 000 пользователей и эту страницу с онлайном будут вызывать ну допустим 1000 раз в минуту. Это не сильно большой объем. Обычный SQL запрос котоырй сам посчитает все если правилньо оптимизировать его он не нагрузит очень сильно
Anonymous
Васильев Виктор
Да. Для начала создай готовый продукт. Ведь возможно это не будет узким местом твоей программы и по сути оно тебе и не нужно будет. А времнеи ты потратишь много
Anonymous
На счёт sql запроса
Простой where status=online не катит?
Васильев Виктор
Тебе даже проще можно делать
Васильев Виктор
Можно так. А можно просто разницу во времени последнего запроса пользователя допустим смотреть. И если разница между текущим времени и последним больше N то он оффлайн и индекс не забывай
Anonymous
Васильев Виктор
Вполне себе нормальное решение. Если станет узким местом тогда и сомтри как это дело оптимизировать
Anonymous
Окей, спс
Petr
Ну если есть возможность, можно просто процедуру написать, которая будет булевое значение проставлять и все, на самом деле можно много чего придумать, лучше конечно уже по обстоятельствам ориентироваться
Petr
Я делал таски, которые обсчитывали действия пользователей и запускались периодически по шедулеру, собирал все в отдельную табличку, но там конечно своя специфика была, почему было так сделано
Daniel
вот именно статистику живые-отвалившиеся надо не по базе собирать, а репортить из приложения
Oleg
Daniel
действительно - как же оно это сделает....
Anonymous
как у time.Time время поменять?
Anonymous
чтобы было time.Now() - 15 минут
Anonymous
add(duration) есть
Anonymous
а как отнять?
Anonymous
Васильев Виктор
https://golang.org/pkg/time/#Time.Sub
Васильев Виктор
Действительно. ЧТо-то я немного не так понял вопроса :)
Oleh
зато там написанно как юзать Add()
To compute t-d for a duration d, use t.Add(-d)
Anonymous
Чем отличаются эти массивы?
Anonymous
один с указателями другой без
Anonymous
оба выводят одно и тоже
Мерль
Васильев Виктор
Опять оптимизируешь?)
Васильев Виктор
Разница в типах
Васильев Виктор
там ты хранишь указатель а там структуру
Васильев Виктор
логично?
Васильев Виктор
А ну и кстати да ^
🏁Александр
можно даже не рандом а i подставить из цикла
Васильев Виктор
Короче чтобы не мучать парня. ВОпрос: Ты знаешь разницу между указателем и объектом?
Anonymous
Мерль
Anonymous
?
var blah Blah объявляется в цикле
Васильев Виктор
Васильев Виктор
указатель все на ту же переменную
Anonymous
А как тогда это фиксить?
Васильев Виктор
Т.е. ты запихал один и тот же объект кучу раз в массив
Anonymous
make чототам
Васильев Виктор
Чтобы это пофиксить тебе нужно пофиксить базовые свои знания
Anonymous
Васильев Виктор
почитайтур по гу с самого начала и до конца и узнай что такое указатель
Васильев Виктор
Просто даже если мы тебе сейчас это поясним и поффиксим дырка в твоих щзнаниях не восполнится. А эта дырка очень важная
Anonymous
Anonymous
Хотел узнать есть ли резон переписывать на эти указатели массивы
Anonymous
Потому что хоть так хоть так работает
Васильев Виктор
соответственно другая ситуация
Мерль
Aleksey
Указатели сложнее убирать сборщику мусора
Васильев Виктор
используй то что логичнее. Используй тип который по там нужен там быть
Мерль
иначе даже не стоит и чесаться
Васильев Виктор
Чаще всего по таким мелочам не стоит чесаться потому что выгода еще строится из времени написания самих бенчмарков)
Aleksey
Ссылку использовать, если нужно нил проверять
Anonymous
а кстати нет