Планировщик задач

Для корректной работы php-скрипта интернет-аукциона Molotok требуется отладить запуск определенных задач в соответствии с расписанием. Часть приложения предназначенная для работы с консольными командами располагается в папке /console, а сами команды в папке /console/commands. Ниже приведен список основных задач, которые должны запускаться по расписанию.

Важно! Если Вы испытываете трудности в настройке планировщика задач, обратитесь к Вашему хостинг-провайдеру и предоставьте пример содержания файла планировщика задач (в конце страницы), либо воспользуйтесь нашими услугами.

LotCommand.php

Класс содержит основные задачи обработки торгов по лотам со ставками и без:

Обработка лотов по которым имеются ставки и закончилось время проведения торгов. Необходимо присвоить соответствующий статус лотам, назначить победителей и сформировать e-mail уведомления. Рекомендуемая частота запуска - 1 раз в минуту.

php /var/www/demoMolotok/yiic.php lot processLotWithBids >/dev/null 2>&1

Обработка лотов по которым НЕТ ставок и закончилось время проведения торгов. Необходимо присвоить лотам статус завершившихся, либо перевыставить, если такой параметр активен. Дополнительно можно указать максимальный объём памяти, выделяемый на данную команду --memoryUsageLimit=1000. Рекомендуемая частота запуска - 1 раз в минуту.

php /var/www/demoMolotok/yiic.php lot processLotWithoutBids --memoryUsageLimit=1000 >/dev/null 2>&1

Проверяет и удаляет кеш для команд "processLotWithBids" и "processLotWithoutBids". Рекомендуемая частота запуска - 1 раз в 20 минут.

php /var/www/demoMolotok/yiic.php lot checkAndDeleteCommandsCache >/dev/null 2>&1

MailingCommand.php

Формирование и рассылка e-mail писем поставленных ранее в очередь (таблица message_queue). Дополнительно можно передать параметр равный количеству отсылаемых писем за один запуск --process=n, где n максимальное количество отправляемых писем (по умолчанию - 30). Рекомендуемая частота запуска - 1 раз в минуту.

php /var/www/demoMolotok/yiic.php mailing processEmailQueue --process=30 >/dev/null 2>&1

RecalcAuctionCountCommand.php

Пересчет количества лотов в категориях. Необходимо для верного отображения количества лотов в основном меню сайта. Рекомендуемая частота запуска - каждые 4 часа.

php /var/www/demoMolotok/yiic.php yiic.php RecalcAuctionCount >/dev/null 2>&1

ServicePro.php

Класс для обработки задач связанных с ПРО-аккаунтом.

Рассылает пользователям e-mail уведомления о скором завершении ПРО-аккаунта (если был ранее активирован). Рекомендуемая частота запуска - 1 раз в день.

php /var/www/demoMolotok/yiic.php yiic.php servicePro reminderExpiryPro >/dev/null 2>&1

Устанавливает статус неактивного ПРО-аккаунта пользователям у которых истек срок действия подписки. Рекомендуемая частота запуска - 4 раза в день.

php /var/www/demoMolotok/yiic.php yiic.php servicePro complete >/dev/null 2>&1

BanCommand.php

Блокирует пользователей чей рейтинг ниже определенного значения (порог настраивается в админ части). Рекомендуемая частота запуска - 1 раза в час.

php /var/www/demoMolotok/yiic.php yiic.php ban >/dev/null 2>&1

UserCommand.php

Устанавливает флаг активности пользователя online/offline в таблице users. Рекомендуемая частота запуска - 1 раза в 10 минут.

php /var/www/demoMolotok/yiic.php yiic.php user authStatus >/dev/null 2>&1


Ниже приведено примерное содержание файла планировщика задач.

#! /bin/sh
*    *    *    *    *    root    php /var/www/clients/client1/web1/web/yiic.php lot processLotWithoutBids 2>&1
*    *    *    *    *    root    php /var/www/clients/client1/web1/web/yiic.php lot processLotWithBids 2>&1 
*/20    *    *    *    *    root    php /var/www/clients/client1/web1/web/yiic.php lot checkAndDeleteCommandsCache 2>&1
*    *    *    *    *    root    php /var/www/clients/client1/web1/web/yiic.php mailing processEmailQueue 2>&1
0    */4    *    *    *    root    php /var/www/clients/client1/web1/web/yiic.php recalcauctioncount 2>&1
10    10    *    *    *    root    php /var/www/clients/client1/web1/web/yiic.php servicePro reminderExpiryPro 2>&1 
30    */6    *    *    *    root    php /var/www/clients/client1/web1/web/yiic.php servicePro complete 2>&1
10    *    *    *    *    root    php /var/www/clients/client1/web1/web/yiic.php ban 2>&1
*/10    *    *    *    *    root    php /var/www/clients/client1/web1/web/yiic.php user authStatus 2>&1