[SOLVED] Из-за модуля search перестаёт работать cron.

Главные вкладки

Аватар пользователя s-anches@drupal.org s-anches@drupal.org 3 августа 2010 в 7:15

Всем привет. Заметил то, что у меня перестал работать cron. Сервер свой, тайминги на выполнение скриптов стоят большие. Памяти выделенно php много. Идет индексация сайта, на сайте 1500+ продуктов в ubercart, индексируется где-то половина сайта, в базе более 50000 записей появляется, и всё, крон после этого не выполняется, вылетает с сообщением превышен интервал времени выполнения, при том что его запускаешь и проходит меньше секунды как он выполняется. Отключаю search всё окей. Или чищу в базе таблицы search*, и cron опять работает, пока не дойдет примерно до середины. Помогите, поиск нужен.

Комментарии

Аватар пользователя gerboss gerboss 3 августа 2010 в 10:45

а база в 50000 записей "набита" через средства друпала или же конвертили из другой базы?

была похожая заморочка, когда переносил форум на друпал, при переносе подчистил базы от удаленных пользователей и спама, получалось около 30000 тем и около 300000комментов. вот индексация поиска по этой базе тоже сперва не проходила, зависала в одних и тех же местах. в результате оказалось недочеты в базах после переноса - то пользователь из базы был удален, а комменты с его uid были в наличии, то сообщения, в которых были длинные наборы однотипных символов (бывали идиоты, которые "обрамляли" свои сообщения в рамочку из точек, оказалось, что друпаловский поиск не переносит таких строчек).
вообщем, победить проблему можно.
посмотри, на какой ноде подвисает индексация поиска и посмотри что в этой ноде не так. вплоть до удаления этой ноды

Аватар пользователя gerboss gerboss 3 августа 2010 в 14:10

смотрите таблицу search_dataset, в ней отображается sid и тип материала. соответственно смотреть ноды с nid=sid и выше

Аватар пользователя s-anches@drupal.org s-anches@drupal.org 3 августа 2010 в 14:45

Проблема была в ноде lock-node... В неё был php скрипт, который обрабатывал прайс перед импортом в юберкарт, и там была функция die которая срабатывала ,если файл не найден.