Всем привет, написал свой первый простенький скрипт, пока еще очень плохо владею php и не нашел как можно сделать задержку выполнения скрипта на определенное время, что попалось под руку, так это только sleep Все было хорошо, но как на сайте появилось порядка 1.5к посетителей сервер у меня зашатался, первым же делом подумал на sleep. Сам скрипт заносит в базу данных определенную цифру, что то вроде голосовалки, нажал на кнопку прибавился голос, занесся в базу данных. В sleep указал порядка 20 секунд выполнения, ну собственно скрипт тем самым ложит сервер на лопатки. Есть ли какие то альтернативы sleep? Что то вроде временного хранения голоса в каком нибудь кешь файле на сервере или еще что нибудь? Крон я не в силах написать, да и думаю это через чур будет для такого скрипта ))) Подскажите, или лучше наглядно, может быть есть где примеры использования альтернативы sleep
нет он добавляется, но с задержкой, чтобы юзеру не показывать что голос его добавился, так как это испортит всю идею скрипта. За 20 секунд юзер просто должен кое что сделать, этого времени хватает на выполнение кое чего, а если задержку убрать, то он увидит что голос уже прибавился и остановится на этом, а этого не хотелось бы.
кое-чего - это посмотреть рекламу?) тут принцип наверное такой будет. пользователь нажимает "голосовать", ваш скрипт заносит в базу время голосования, отвечает пользователю "ждем обработки" и завешается. в браузере на этот ответ запускается javascript, который через 20 секунд отправит еще один запрос "я подождал", скрипт проверит время и добавит голос. или без скрипта добавить заговолок Refresh.
нет не рекламу. С скриптом думаю не получится, так как, как я думаю если юзер перезагрузит страницу то он сразу же увидит свой голос. Можно ли сделать так? В базе данных создать поле в котором будут хранится временный голос, потом через некоторое время из временного поля голос переносится в основное поле, ну как я понял здесь без крона не обойтись. Можно ли сделать как то что бы если делать крон скрипт запускал крон сам, т.е. не кронтаб задание делать, а чтобы он сайте запускал файл через некоторое время?
- данный конкретный задач решается использованием даты-времени добавления голоса. И показом тех где дата меньше текущей - Х сек. - вы не должны хотеть что-то делать с сервером. ваш скрипт должен отрабатывать быстро, легко и освобождать свое место. У вас не будет задач где нужно что-то делать на сервере необычное. Все решается разумными методами. Мысли о слипе или чем-то другом - признак сильно кривых рук.
на счет кривых рук я в этом и не сомневаюсь ))) Я же все таки только начинаю что то сам делать, мне очень понравилось php, то что можно в итоге с помощью него смонстряпать, ну как говорится век живи, век учись, вот я и учусь потихоньку, то что я делаю сейчас, месяц назад для меня было просто не понятно =)