DispatchLikeToNewsfeedPost
class DispatchLikeToNewsfeedPost extends Command
Класс DispatchLikeToNewsfeedPost - консольная команда для автоматического выполнения циклических задач по постановке лайков на посты в ленте новостей ВКонтакте.
Эта команда запускается планировщиком Laravel каждую минуту и является ключевым компонентом для реализации циклических задач по автоматической постановке лайков на посты в VK.
Properties
protected string | $signature | Сигнатура консольной команды. |
|
protected string | $description | Описание команды, объясняющее её назначение. |
Methods
Конструктор класса.
Выполняет основную логику команды: обрабатывает активные циклические задачи на лайки, обновляет расписание лайков в начале каждого часа и выполняет задачи в соответствии с расписанием.
Details
at line 42
void
__construct()
Конструктор класса.
Вызывает конструктор родительского класса Command.
at line 65
void
handle()
Выполняет основную логику команды: обрабатывает активные циклические задачи на лайки, обновляет расписание лайков в начале каждого часа и выполняет задачи в соответствии с расписанием.
Этот метод выполняет несколько ключевых шагов:
- Получает все активные циклические задачи из базы данных.
- Проверяет, наступил ли новый час, чтобы обновить расписание лайков (
likes_distribution
) для каждой задачи.- Если да, генерирует новый набор уникальных случайных минут в пределах часа в соответствии с полем
tasks_per_hour
. - Сохраняет новое расписание в базе данных.
- Если да, генерирует новый набор уникальных случайных минут в пределах часа в соответствии с полем
- Для каждой активной задачи проверяет, входит ли текущая минута в расписание лайков.
- Если да и количество оставшихся задач (
tasks_count
) больше 0, выполняет задачу на постановку лайка. - Декрементирует
tasks_count
и инкрементируетlikes_count_hourly
. - Если после выполнения задачи
tasks_count
становится равным 0, обновляет статус задачи на 'done'.
- Если да и количество оставшихся задач (
- Сохраняет изменения в базе данных.