CRON. Забивается журнал ошибок и "слетает" сайт.

Приветствую.

Раз в минуту CRON долбит сниппет, который ищет в пользовательской таблице запись со значением status = 0. Такая запись появляется примерно 10/15 раз в день.

Всё работает, как надо. Задача выполняется, однако стал замечать много ошибок связанных с кэшом в журнале, например:

[2016-05-31 11:03:59] (ERROR @ /index.php) Error caching script elements/modsnippet/69
[2016-05-31 11:04:02] (ERROR @ /index.php) Error caching script elements/modsnippet/173
[2016-05-31 11:04:02] (ERROR @ /index.php) Error caching script elements/modsnippet/72
[2016-05-31 11:04:02] (ERROR @ /index.php) Error caching script elements/modsnippet/69

Но и это пол беды. Иногда стали слетать сниппеты (то-есть вообще перестают работать, даже самые простенькие сниппеты). Методом «тыка» понял, что слетают они, если что-то изменять в сниппетах или ресурсах параллельно с работой CRON.

Лечится это только полной очисткой папки /cache/.

Использую CronManager, и уже решил было попробовать уйти от него (вынести сниппет в отдельный файл и работать напрямую с ним через CRON), но встретил подобные проблемы и если работать напрямую: Вот вопрос на modx.pro

Буду рад любой информации, так как чистить папку /cache/ 100 раз в день уже надоело :)
Благодарю.
Александр
31 мая 2016, 08:23
modx.pro
1
1 679
0

Комментарии: 6

Василий Наумкин
31 мая 2016, 13:23
+2
Такое бывает когда скрипт крона запускается от юзера, которому не принадлежать файлы сайта. Например, от root.

Он сгенерирует кэш, а обычный юзер сайта потом не может его перезаписать.
    Александр
    31 мая 2016, 14:34
    0
    Оно самое!
    Дело было именно в этом. Большое спасибо
      Alexander
      06 мая 2019, 01:39
      0
      Добрый день!
      Столкнулся с такой же проблемой. Очень выносит мозг )
      Как вы её победили?
        Михаил
        06 мая 2019, 06:35
        0
        Смотрите процесс php, должен быть от того же юхера что и php сайта. Возможно у вас крон запущен от рута
          Alexander
          06 мая 2019, 08:22
          0
          Но как запустить крон задачу не от рута, а от другого пользователя?
            Пётр Молчанов
            06 мая 2019, 10:33
            0
            можно посмотреть файлик крона и понять, что 6ой параметр — это пользователь. наверное, вам нужно поменять на www-data, но это не точно :) надо смотреть в системе
            # m h dom mon dow user	command
            17 *	* * *	root cd / && run-parts --report /etc/cron.hourly
    Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
    6