За последние 24 часа нас посетили 22885 программистов и 1236 роботов. Сейчас ищут 815 программистов ...

Счетчик онлайна на php с глюком

Тема в разделе "Прочие вопросы по PHP", создана пользователем Dr.And, 20 дек 2012.

  1. siiXth

    siiXth Активный пользователь

    С нами с:
    14 мар 2010
    Сообщения:
    1.447
    Симпатии:
    1
    знаете, раз уж вы тут такие велосипеды начали строить (не, некоторые методы очень хороши), то я, в порядке бреда, предложил бы сделать это на джаббере. просто интересно как воспримете идею =)
    и вам как бы кеш вообще не нужен? кешируйте на минуту хотя бы, один юзер спросит базу - остальные за минуту выймут из кеша и по новой. в идеале на 5 мин.
     
  2. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    короче понятно, БД и никаких вариантов )))
     
  3. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Я уже говорил как лучше всего делать...
    Js интервал на стороне пользователя и сервер.

    Когда интервала не будет то и пользователя не будет.
    Если интервал появился, то и пользователь появился...

    Повозиться придется, однозначно, но лучше решения не найти)))


    Да и вообще на фиг оно надо?)
     
  4. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    во, кстати, идея....я выкладываю задачу у себя на сайте, и тот кто предложит самое красивое и быстрое решение, получает 100 рублей.....ась? )
     
  5. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    Dmitriy A. Arteshuk, /var/lib/php5 интересный путь! а сессии там в принципе работают? может они через APC или еще какой хандлер вместо файлов?

    P.S. хостинг TIMEWEB ? они ебанулись там слегка, всякие странности случаются
     
  6. Your

    Your Старожил

    С нами с:
    2 июл 2011
    Сообщения:
    4.074
    Симпатии:
    7
    Вы бредите)))
     
  7. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград

    сессии работают, хостер другой )

    Добавлено спустя 39 секунд:
    Зём, мы ждем твой вариант )))
     
  8. Dr.And

    Dr.And Активный пользователь

    С нами с:
    6 июн 2012
    Сообщения:
    23
    Симпатии:
    0
    Почитал я и понял, что наверно скрипт, который я выложил в первом посте, надо переделать для работы с БД и будет мне счастье.
    А что бы сильно скачки счетчика (если они будут) не кидались в глаза - обновлять скрипт аяксом 1 раз в мину-две.
    Или вообще не обновлять, хоть серверу легче дышать станет :)
     
  9. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    кажется я знаю почему файлы сессий в /var/lib/php5 невозможно посмотреть: по крайней мере на моем тестовом Debian у этой папки владелец root, а биты
    rwx-wx-wx
    т.е. писать в папку можно, читать нет, glob() и любая другая похожая функция не может прочитать папку. элегантно!
    надеюсь сборщик мусора работает из под рута, иначе всё слишком тонко выйдет )))
     
  10. Dmitriy A. Arteshuk

    Dmitriy A. Arteshuk Активный пользователь

    С нами с:
    19 янв 2012
    Сообщения:
    2.445
    Симпатии:
    66
    Адрес:
    Зеленоград
    я то вообще на шаредхостинге эту папку глянуть не могу (

    локально все чудно пишется и читается...

    ну и владелец и права то же вроде бы понятно, иначе каждый желающий возьмет да прочитает...
     
  11. artoodetoo

    artoodetoo Суперстар
    Команда форума Модератор

    С нами с:
    11 июн 2010
    Сообщения:
    11.076
    Симпатии:
    1.237
    Адрес:
    там-сям
    эксперимент показал, что если вообще нигде не задан явно session.save_path, то он становится равен /var/lib/php5 и тогда вот описанные симптомы.

    ок, будем считать, что рецепт совсем никуда не годится, т.к. очень хрупкий.
     
  12. sobachnik

    sobachnik Старожил

    С нами с:
    20 апр 2007
    Сообщения:
    3.380
    Симпатии:
    13
    Адрес:
    Дмитров, МО
    Такие штуки, которые обновляются очень часто и при этом особой ценности не имеют - лучше хранить в оперативке, а не в файлах.
    100 юзеров в онлайне - это 10 одних только ajax-запросов в секунду, а каждый запрос такой запрос - это перезапись файла. 10 раз в секунду файл обновляется... Жёсткий диск так скоро запросится на пенсию )
     
  13. Dr.And

    Dr.And Активный пользователь

    С нами с:
    6 июн 2012
    Сообщения:
    23
    Симпатии:
    0
    Ну... жесткий диск - это проблема хостинг-провайдера )))
    Я делаю новую версию сайта. Там обновление скрипта аяксом будет идти уже через 4,5 мин.
    В самом скрипте установлю таймаут 5 мин.
    Таким образом будет через 4,5 мин. обновляться время прикрученное к идентификатору сессии (если пользователь еще на странице) и если пользователь ушел - то через 5 мин. от последнего обновления его идентификатор сессии удалится с файла .dat.
    Этим самым будет проверяться онлайн и разгрузится сервер.