Выполнение действий по cron-у

Обсуждение документации. Переводы Cookbook и авторские рецепты.
grechan
Сообщения: 2
Зарегистрирован: 2014.08.07, 09:41

Re: Выполнение действий по cron-у

Сообщение grechan »

Добрый день. Оба метода понятны. Только вот вопрос есть, ламерный наверное, - но все же - как используя "Использование консольного приложения", т.е. второй метод, на хостинге задать его в расписании на выполнение?
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Выполнение действий по cron-у

Сообщение yiijeka »

На хостинге в админке, обычно, есть вкладка "задания cron". Там и настраивается ставя - * * * * "php /path/to/cron.php test".
footniko
Сообщения: 16
Зарегистрирован: 2012.07.04, 23:43

Re: Выполнение действий по cron-у

Сообщение footniko »

При использовании крона неправильно указывается webroot. Цепляется еще и папка protected, хотя не должна... В чем причина?
footniko
Сообщения: 16
Зарегистрирован: 2012.07.04, 23:43

Re: Выполнение действий по cron-у

Сообщение footniko »

footniko писал(а):При использовании крона неправильно указывается webroot. Цепляется еще и папка protected, хотя не должна... В чем причина?
А все дело потому, что cron.php находится в директории protected. Если его перенести на уровень выше (сменив в нем пути к конфигам, естественно), то все хорошо. Только вопрос, насколько это правильно, т.к. файл можно запустить с браузера?
Аватара пользователя
vitovt
Сообщения: 210
Зарегистрирован: 2012.03.21, 10:37
Контактная информация:

Re: Выполнение действий по cron-у

Сообщение vitovt »

Столкнулся с такой проблемой.

При выполнении по крону задчи

php /home/dev.xxx.by/www/protected/cron.php backup

выдается следующее

Код: Выделить всё

<?
    class BackupCommand extends CConsoleCommand
    {

        public function run($args)
        {
                echo 'OK';
        }

    }PHP Error[2]: include(BackupCommand.php): failed to open stream: No such file or directory
    in file /home/dev.xxx.by/www/framework/YiiBase.php at line 421
#0 /home/dev.xxx.by/www/framework/YiiBase.php(421): autoload()
#1 unknown(0): autoload()
#2 /home/dev.xxx.by/www/framework/console/CConsoleCommandRunner.php(170): spl_autoload_call()
#3 /home/dev.xxx.by/www/framework/console/CConsoleCommandRunner.php(67): CConsoleCommandRunner->createCommand()
#4 /home/dev.xxx.by/www/framework/console/CConsoleApplication.php(92): CConsoleCommandRunner->run()
#5 /home/dev.xxx.by/www/framework/base/CApplication.php(180): CConsoleApplication->processRequest()
#6 /home/dev.xxx.by/www/framework/yiic.php(33): CConsoleApplication->run()
#7 /home/dev.xxx.by/www/protected/cron.php(6): require_once() 


т.е оно как бы ругается на то что файл BackupCommand.php не может быть подключен хотя и выводит в консоль все его содержание
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Выполнение действий по cron-у

Сообщение yiijeka »

namespace не корректный
Аватара пользователя
vitovt
Сообщения: 210
Зарегистрирован: 2012.03.21, 10:37
Контактная информация:

Re: Выполнение действий по cron-у

Сообщение vitovt »

Я неймспейсы не использую
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Выполнение действий по cron-у

Сообщение yiijeka »

Ну значит alias. Import не проходит
Аватара пользователя
vitovt
Сообщения: 210
Зарегистрирован: 2012.03.21, 10:37
Контактная информация:

Re: Выполнение действий по cron-у

Сообщение vitovt »

Не совсем понимаю, нигде никаких алиас не используются, я выполняю команду

php yiic.php backup

Выводит содержимое файла /protected/commans/BackupCommand.php

в нем нет никаких импортов никаких моделей ничего
Аватара пользователя
vitovt
Сообщения: 210
Зарегистрирован: 2012.03.21, 10:37
Контактная информация:

Re: Выполнение действий по cron-у

Сообщение vitovt »

Вернее, я понимаю, что выглядит это так, будто где-то лежит класс BackupCommand который система найти не может, но это не модель, не хелпер, это сам файл команды BackupCommand.php в котором задание по крону и выполняется. Тем более что в консоль выводится все содержимое этого файла. Что он пытается еще автоаплоадить?
dmg
Сообщения: 685
Зарегистрирован: 2012.10.15, 03:09

Re: Выполнение действий по cron-у

Сообщение dmg »

может системный крон не имеет прав доступа к папке с файлом?
Аватара пользователя
vitovt
Сообщения: 210
Зарегистрирован: 2012.03.21, 10:37
Контактная информация:

Re: Выполнение действий по cron-у

Сообщение vitovt »

если выполнить php yiic.php

то в ответ будет вот что

Yii command runner (based on Yii v1.1.16)
Usage: yiic.php <command-name> [parameters...]

The following commands are available:
- backup
- message
- migrate
- shell
- webapp

To see individual command help, use the following:
yiic.php help <command-name>


т.е он как бы видит какие команды есть в command
Аватара пользователя
vitovt
Сообщения: 210
Зарегистрирован: 2012.03.21, 10:37
Контактная информация:

Re: Выполнение действий по cron-у

Сообщение vitovt »

Разобрался

почему-то если я писал файл

<? class

то файл воспринимался при импорте как обычный текстовый отсюда и не было класса

исправил на <?php classs
и заработало.


Чудеса.
Аватара пользователя
yiijeka
Сообщения: 3103
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь
Контактная информация:

Re: Выполнение действий по cron-у

Сообщение yiijeka »

Не включены short_tag
pernik
Сообщения: 17
Зарегистрирован: 2012.04.26, 22:53

Re: Выполнение действий по cron-у

Сообщение pernik »

Здравствуйте, подкажите где указуется команда на выполнение, и периодичность выполнения команды ???
Аватара пользователя
ElisDN
Сообщения: 5845
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Выполнение действий по cron-у

Сообщение ElisDN »

pernik писал(а):Здравствуйте, подкажите где указуется команда на выполнение, и периодичность выполнения команды ???
В /etc/cron.d
Ответить