Как синхронизировать состояние между сессиями PHP? - PullRequest
1 голос
/ 21 сентября 2010

Я создаю веб-приложение. HTML + AJAX <-> PHP <-> MySQL; очень традиционный Что мне нужно сделать, так это иметь какое-то состояние, из которого могут считываться все сеансы, и что-то, что управляет состоянием, меняется, даже когда на сайт не смотрят пользователи.

Простым примером будет счетчик. Мы запускаем счетчик с нуля, а затем всякий раз, когда любой пользователь подключается к веб-сайту, он видит текущее значение счетчика. Даже если никто не смотрит на сайт, счетчик все равно увеличивается. Каждый, кто просматривает сайт, видит одно и то же значение одновременно.

Какой лучший способ реализовать это? Кажется, что я должен быть в состоянии сделать это, не прибегая к хранению значений в базе данных и заставляя всех запрашивать базу данных о состоянии. Но я не знаю, как запустить PHP, когда никто не подключен. Нужен ли четвертый компонент? У меня нет своего собственного веб-сервера, все это размещено в каком-то магазине, который настраивает среду для меня, но у них, похоже, есть самые современные и разумные вещи, которые можно ожидать в таком стеке.

Очевидно, что это не моя область знаний, поэтому любые толчки в правильном направлении приветствуются.

Ответы [ 3 ]

1 голос
/ 21 сентября 2010

Не могли бы вы объяснить, что именно вы хотите делать в фоновом режиме?Как бы то ни было, похоже, что вам нужно будет настроить задачу cron для запуска php-скрипта на основе консоли для выполнения этой дополнительной функциональности.Вы можете запланировать выполнение задач cron так часто, как пожелаете.Настроить задачи cron можно с любой панели управления (cPanel, Plesk, Exim и т. Д.).

Поскольку эта информация фактически доступна для всех сессий в вашем основном PHP-коде на передней панели,Вы можете хранить информацию в кэше (используя Memcache )

1 голос
/ 21 сентября 2010

Что заставляет счетчик увеличиваться?

Вы можете использовать задание cron.

Чтобы состояние сохранялось во всех соединениях, его необходимо либо сохранить в базе данных, либо в виде файла (который в любом случае является базой данных).

1 голос
/ 21 сентября 2010

Вы можете установить глобальную переменную PHP, и если ваш веб-хост позволяет на панели управления, настроить задание cron для запуска php-скрипта в вашем приложении, который увеличивает значение переменной каждые несколько минут.

http://en.wikipedia.org/wiki/Cron

Обычно у веб-хостов на панели управления есть приложение-планировщик cron, которое позволяет вам выбрать, какой скрипт запускать и с какими временными интервалами.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...