У меня есть база данных продуктов, которая когда-либо синхронизируется с данными о продукте.Длинный скрипт PHP работает несколько раз
Процесс очень ясно:
- Получить все продукты из базы данных по запросу
- Loop через все продукты, а также получить и XML с другого сервера, product_id
- данных Обновление от XML
- Зарегистрировать изменения в файле.
Если я запрашиваю небольшое количество предметов, но ограничиваю их, например, 500 случайными продуктами, все идет хорошо. Но когда я запрашиваю все продукты, мой сценарий SOMETIMES переходит на fritz и начинает цикл несколько раз. Через несколько часов я все еще вижу, что мой файл журнала растет и добавляются продукты.
Я проверил все, что я мог придумать, например:
- переменные не используются дважды, не переписывая друг друга
- называют ли функция сама
- Случается ли с небольшим количеством продуктов тоже: нет.
- Сценарий вызывается с помощью cronjob, это настройки в порядке. (Да)
Причина, по которой это особенно странно, заключается в том, что она иногда идет вправо, а иногда и нет. Может ли это быть проблемой памяти?
EDIT wget -q -O /dev/null http://example.eu/xxxxx/cron.php?operation=sync
его в Webmin называется на определенный час и минуту
код сотни строк длинных ...
Благодаря
Возможно ли, что вы один и тот же продукт несколько раз? Это может произойти, если ваш запрос довольно большой с несколькими объединениями, которые могут привести к множественному набору результатов? – insanebits
Не могли бы вы показать нам свой код? Это может быть условие в ваших методах. –
Я думаю, нам нужно будет увидеть некоторые из ваших скриптов - «cronjob» и скрипт, который он запускает, чтобы получить большую часть дескриптора этого. –