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

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

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

Сообщение grechan » 2014.08.07, 14:00

Добрый день. Оба метода понятны. Только вот вопрос есть, ламерный наверное, - но все же - как используя "Использование консольного приложения", т.е. второй метод, на хостинге задать его в расписании на выполнение?

Аватара пользователя
yiijeka
Сообщения: 3031
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь

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

Сообщение yiijeka » 2014.08.07, 17:48

На хостинге в админке, обычно, есть вкладка "задания cron". Там и настраивается ставя - * * * * "php /path/to/cron.php test".

footniko
Сообщения: 16
Зарегистрирован: 2012.07.04, 23:43

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

Сообщение footniko » 2014.09.24, 13:08

При использовании крона неправильно указывается webroot. Цепляется еще и папка protected, хотя не должна... В чем причина?

footniko
Сообщения: 16
Зарегистрирован: 2012.07.04, 23:43

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

Сообщение footniko » 2014.09.24, 14:58

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

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

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

Сообщение vitovt » 2015.01.21, 11:43

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

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

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
Сообщения: 3031
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь

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

Сообщение yiijeka » 2015.01.21, 12:29

namespace не корректный

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

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

Сообщение vitovt » 2015.01.21, 12:41

Я неймспейсы не использую

Аватара пользователя
yiijeka
Сообщения: 3031
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь

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

Сообщение yiijeka » 2015.01.21, 13:05

Ну значит alias. Import не проходит

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

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

Сообщение vitovt » 2015.01.21, 14:49

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

php yiic.php backup

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

в нем нет никаких импортов никаких моделей ничего

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

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

Сообщение vitovt » 2015.01.21, 15:01

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

dmg
Сообщения: 631
Зарегистрирован: 2012.10.15, 03:09

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

Сообщение dmg » 2015.01.21, 15:08

может системный крон не имеет прав доступа к папке с файлом?

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

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

Сообщение vitovt » 2015.01.21, 15:10

если выполнить 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
Сообщения: 208
Зарегистрирован: 2012.03.21, 10:37
Контактная информация:

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

Сообщение vitovt » 2015.01.21, 15:28

Разобрался

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

<? class

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

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


Чудеса.

Аватара пользователя
yiijeka
Сообщения: 3031
Зарегистрирован: 2012.01.28, 09:14
Откуда: Беларусь

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

Сообщение yiijeka » 2015.01.21, 22:28

Не включены short_tag

pernik
Сообщения: 17
Зарегистрирован: 2012.04.26, 22:53

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

Сообщение pernik » 2016.04.12, 17:56

Здравствуйте, подкажите где указуется команда на выполнение, и периодичность выполнения команды ???

Аватара пользователя
ElisDN
Сообщения: 4998
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

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

Сообщение ElisDN » 2016.04.12, 23:03

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

Ответить