Не правильно работают отложенные сообщения
добрый день. Настроена отправка отложенных сообщений клиенту (через Cron), через две недели после покупки, но ему почему-то отправляется большое количество этих писем http://bit.ly/1Tl2dSz
Подскажите в чем может быть проблема, как исправить?
6 ответов
вот в истории заказа эти письма http://bit.ly/1Tl4kFX
Проверьте логи, возможно в них есть ошибки, поясняющие причины такого поведения. Для просмотра логов используйте бесплатное приложение Логи.
Проблема с правами на кэш. Столкнулся с тем же в брошенных корзинах, т.к. изначально писал консольный скрипт по образу стандартных уведомлений.
Скорее всего PHP у вас работает как модуль Апача. С mod_apache проблема следующая.
1. Движок записывает в wa-cache какие-то данные.
2. Если это происходит при запуске "из браузера", php запускается от имени www-data
3. Запуск cli-скриптов происходит от имени вашего пользователя.
4. Права на файлы и папки устанавливаются без записи для всех кроме конкретного пользователя (755).
5. Кто первый встал (записал), того и тапки :)
Так вот к чему это.... При проверке времени последнего запуска скрипта из кэша берётся переменная last_cron_check (или что-то вроде того).
И тут же записывается назад. В базе значение изменяется, но кэш не сбрасывается, т.к. записан через вебсервер.
При следующем запуске скрипта переменная опять берётся из кэша (старая).
Самый простой вариант решения, который я нашёл - перевести PHP в режим CGI.
Если php работает в режиме CGI, то в п.2 используется тот же пользователь, что и в п.3.
Есть ещё вариант настройки mod_apache, но я не силён в этом.
Временно может помочь установка прав на wa-cache в 777 рекурсивно. Но при следующей очистке кэша всё опять сломается.
похоже так и есть
а если папке wa-cache поменять права доступа?
да действительно 755
спасибо за совет, попробую сделать
вот нашел в логах такую запись (в файле cli.log)
и из файла db.log