Cron / одна задача в планировщике не выполняется

 
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2667
Добрый вечер. Нарисовалась интересная проблема.
Задача в планировщике вручную выполняется. А вот по cron нивкакую. Только она одна, остальные выполняются. Если все задачи отключить, она все равно не выполняется.

При выполнении вручную ошибок не выдается.

В файле cron.php все просто, задачи запускаются по порядку. Сломал мозг, не пойму, куда копать.
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 3059
Zau4man,
Было такое однажды. Проблема была в одиночных скобках ` которые являются служебным символом.

Вынес команду хрона в отдельный файл .sh а в хрон вписал исполнение этого файла.
Редактировалось: 1 раз (Последний: 21 августа 2016 в 21:20)
Реклама
cms
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2021
http://instantcms.ru/blogs/stranyi-blog/kak-proverit-rabotaet-li-zadacha-cron.html
NOP
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2667
Попробовал запустить задачу из панели хостинга, получил

Код PHP:
  1. Exited with return code = 255
Погуглил. Для isp и шаред хостинга это нормально. Прописал свой e-mail в настройках. Сейчас еще попробую wget-ом дернуть файлик cron, предварительно закомментировав 5 строку.
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2021
Zau4man, создайте связку my_cron.txt + my_cron.php, как я советовал в своем блоге и еще раз нажмите на кнопку Запустить задачу. Если в my_cron.txt появился текст - вот тогда все нормально..
Редактировалось: 1 раз (Последний: 22 августа 2016 в 14:20)
NOP
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2667
Странник, зачем? cron работает! Другие задачи выполняются. Не выполняются только конкретные две. Причем не выполняются только при запуске задач с помощью cron. При запуске через wget (ну или просто в бразуере дергаем сайт/cron.php) все выполняется.
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2021
Zau4man, Ага, понял.
Я и с таким сталкивался - синтаксическая ошибка. В этом случае надо в панели хостинга настроить отправку ошибок на мыло.

ps. еще вспомнил. может быть еще одна причина, почему некоторые скрипты по cron не выполняются. причина - они используют методы ядра (либо методы из модели компонента) которые не были проинициализированы при старте скрипта. другими словами - ты метод вызываешь, а объект (экземпляр класса) в который этот метод вставлен - не создал.
Редактировалось: 2 раз (Последний: 22 августа 2016 в 18:41)
NOP
Посетитель
small user social cms
МедальПочетный донор проектаАвторитет форумаКубок зрительских симпатийПочетный донор проекта
Сообщений: 2667
На почте нарисовалась ошибка.

Код PHP:
  1. PHP Fatal error:
  2. The encoded file /var/www/*****/data/www/******/system/controllers/zpostervk/frontend.php is not permissioned for this server
  3. in Unknown on line 0
Гугление и небольшое знание английского подсказывают, что скрипт "закодирован не для этого сервера". Но он 100% закодирован именно для домена ******.

Куда копать дальше? Трясти техподдержку? Что спрашивать?
Виджеты, поля и компоненты для instantcms 2 http://www.zau4man.ru/
Модератор
small user social cms
МедальКубок зрительских симпатийПочетный донор проекта
Сообщений: 964

Гугление и небольшое знание английского подсказывают, что скрипт "закодирован не для этого сервера". Но он 100% закодирован именно для домена ******. Куда копать дальше? Трясти техподдержку? Что спрашивать?
При запуске скрипта по cron по cli отсутствуют переменные окружения. Это распространенная проблема. Т.е. $_SERVER вообще не определена. Выход:
1. Насроить запуск скрипта по wget, как посоветовано в блоге Странника;
2. Попробовать обойти костылем. Как то так :
Код PHP:
  1. $_SERVER['DOCUMENT_ROOT'] = 'my_domen.ru';
Последнюю строчку надо вставить где-то в начале файла cron.php. Не факт, что поможет smile
Лучше воспользоваться 1-м вариантом.
Хватит париться, живи как нравится!
Посетитель
small user social cms
МедальАвторитет форумаКубок зрительских симпатий
Сообщений: 2021
За wget нас сейчас Fuze наругает.

ИМХО все-таки
Код PHP:
  1. if(!$_SERVER['DOCUMENT_ROOT'] ){
  2. $_SERVER['DOCUMENT_ROOT'] = 'my_domen.ru';
  3. }
И так же внаглую определить остальные переменные окружения, которые используются в скрипте.
Редактировалось: 2 раз (Последний: 23 августа 2016 в 12:38)
NOP
В начало страницы
Предыдущая темаСледующая тема Перейти на форум:
Быстрый ответ
Чтобы писать на форуме, зарегистрируйтесь или авторизуйтесь.