Генерация данных каждые X секунд (независимо от активности пользователя)? - PullRequest
1 голос
/ 07 декабря 2011

как данные генерируются без активности пользователя, мне никогда не было ясно. Допустим, я участвую в лотерее, и люди могут проверить номер выигрышного билета онлайн. Это случайное число должно автоматически генерироваться в определенное время и должно быть одинаковым для каждого посетителя . Как это сделать?

Я подумал, что мог бы использовать скрипт PHP, который извлекает предыдущее число и проверяет, скажем, более 7 дней назад Если это так, скрипт затем сгенерирует новый номер и сохранит его, поэтому он будет получен при посещении страницы другими пользователями, и в этом случае номер будет просто отображаться, так как ему не более 7 дней.

Этот метод действий может вызвать проблемы с несколькими пользователями, которые одновременно пытаются получить доступ к файлам или перезаписывают данные, которые одновременно генерируются / для другого посетителя. Я думаю, было бы лучше, если бы число могло быть сгенерировано и сохранено независимо от активности пользователя, поэтому единственная задача сценария PHP - прочитать его .

Любые идеи будут высоко оценены!

P.S .: Я использую простой веб-хостинг и физически не имею доступа к серверу, я не могу оставить запущенным .bat или .exe. Кроме того, теги могут быть несколько неточными, поскольку я не знаю, что мне следует использовать для решения этой проблемы.

Ответы [ 2 ]

4 голосов
/ 07 декабря 2011

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

Существуют также облачные планировщики, которые будут вызывать ваш URL по выбранному вами расписанию.

Если ваш хостинг-провайдер не предоставляет эту услугу (большинство делают!), Попробуйте поискать online cronjob, hosted cron или подобное («cronjob» - это одно задание, выполняемое демоном cron).

1 голос
/ 07 декабря 2011

Поскольку у вас простой хостинг, вы вряд ли будете иметь доступ к «предпочтительному» методу (запланированные задачи, запуск службы и т. Д.), Как вы говорите.

Так что IMO ваш лучший вариант, вероятно,проверить дату + время последнего обновления значения и, если прошло достаточно времени, обновить его, прежде чем отобразить его.

Чтобы решить проблему отображения «устаревшей информации» дляПользователь, который случайно попадет на веб-страницу за несколько секунд до ее обновления, может отобразить информацию о дате со значением (номера лотереи?) - например, «Номера для сб. 3 дек. 2011: 1 5 10», чтобы пользователь знал, что онисмотрите.

В качестве дополнительной информации вы можете использовать javascript на этой странице, чтобы проверить дату и время и обновить отображаемое значение (обновить страницу или использовать ajax), если пользователь просматривает страницу ввремя обновления.

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