Virgin
врете... )))
не может это так быть.
если разобрать скрипт то получается что у вас в подзапросе извлекается ID записи. а вот какая последовательность у вас в базе (1,2,3 или 1,5,7) - без разницы. если есть ошибка проверяйте запросы...
и к тому же не нужно в подзапросе делать вот это: NUMBER as 'idd'
банально потому, что подзапрос вернет значение, остальное нам не нужно все равно.
и еще запишите все названия столбцов и таблиц в кавычки. не хорошо без них писать...
SELECT COUNT(*) as 'c' FROM `ochered` WHERE `NUMBER`<=(SELECT `NUMBER` FROM `ochered` WHERE `user`='Вася' LIMIT 1)
и попробуйте проверить сам подзапрос, что он вам вернет?
Ну а по простому можно вызывать с помощью system и exec но главное чтобы не заблокировали
заблокированы)))
JustUserR пишет:
Я слышал про такой хитрый метод чтобы вызывать себя типа /usr/bin/links http://yoursite[dot]ru/script.php если хостер разрешает пользоваться этой утилитой
посмотрю. пасибо
Stierus пишет:
В общем, нужно видеть полную задачу что бы советовать что-то.
все еще только проектируется.. потому и нету точной инфы))
Stierus пишет:
(в sql тоже есть математика )
это я знаю.. просто нужно ведь все точно расчитать, побоялся что не получится все в один запрос вбухать)
1 В cronе через некоторые промежуток времени вызываем искомый PHP-скрипт - далее все зависит от того можно ли установить параметр set_time_limit в ноль для бесконечного выполнения
нет, низя- у хостера заблокирована эта фишка
JustUserR пишет:
2 Вообще пусть запуск PHP-скрипта происходит из cronа кажые 10 минут и при запуске создается специальный файл который хранит в себе информацию о процессе выполнения работы - после чего происходит выполнение некоторой части работы
10 минут тоже низя - у меня разрешение раз в час только... =(
а логи да, само сабой.
JustUserR пишет:
3 Когда часть работы PHP-скриптом выполнена то он изменяет файл с состояние выполненя и делает sleep после чего либо продолжает работу либо запускает заново сам себя (Зависит от параметра time_limit)
а как сам себя он будет запускать? можно например переадресацию на самого себя использовать чтобы скрипт перезапускался? )
JustUserR пишет:
4 Если вдруг PHP-скрипт рухнул или не уложился по времени то тоже ничего страшного - он заново запуститься через cron и прочитает из файла информацию на чем он остановился и продолжит работу
да по идее да... пока не придумал как именно так сделать...
или же в базе сразу у обработанных записях ставить отметки времени - когда они были обработаны.. и на основе них уже делать все.
Champion пишет:
100000 записей - это не так много. Делать задержку через каждые 500 записей не нужно. Будет уходить много времени.
Надо попробовать сделать как можно меньше запросов. Ну и индексы правильно создать. В зависимости от того, что обновляется, что участвует в WHERE.
та это то понятно...
к примеру в моем случае есть 100.000 пользователей. у них есть ресурсы - на каждый ресурс своя база (4 ресурса). итого надо получить инфу о юзерах, пересчитать сколько набежало ресов по каждому и обновить 4 таблички с инфой о ресах...
может получится канешно все это сделать скажем в 5-6 запросов, если смогу сделать упдейт одной таблицы целиком в одном запросе... но чет сомневаюсь
а задания крона прописываются в /etc/crontab в формате: http://ru.wikipedia.org/wiki/Cron
я ооочень смутно представляю себе как это все делается...
поэтому буду рад подробной инструкции)
инструкции которые нашел у хоста не особо разобрал..
Мелкий пишет:
На мой взгляд - надо делать паузу, при том я бы сделал наверное 1-2 секунды через каждые 250 записей.
частые паузы блин тоже не сильно допустимы - ограничение по времени выполнения скрипта никто не отменял...
так что подумываю о том, чтобы разделить скрипт на несколько частей (несколько запусков)
например по 5.000-10.000 записей - и тогда думаю нормально будет... (Добавление)
хотя может и без крона можно...
кто либо сталкивался с играми типа ogame или травиан?
вот как лучше сделать чтобы шла добыча ресов и обновлялось показатели у пользователя?