Запланированная задача на CakePHP

Я работаю над проектом CakePHP 3.2 .

У меня есть Property .

когда пользователь создает свойство , администратор должен подтвердить его, чтобы он стал активным . После этого я помещал в поле с именем date_of_expiration текущую дату + 10 дней, например …

Я хочу, чтобы это свойство истекало в эту дату (текущая дата + 10 дней). Изменяя поле, называемое status от активного до неактивного .

Я искал в Google, и я обнаружил, что то, что я не называл Sheduled Task ..

Я спрашиваю о лучшем способе сделать это в CakePHP 3.2

  1. Создайте оболочку с функцией, чтобы найти свойство с истекшим сроком действия и измените значение на неактивное.
  2. Запуск Shell от CronJob каждый день в 00:00:00

Вы можете настроить задание cron, которое вызовет функцию в вашем контроллере. Затем ваша функция будет выбирать все записи из вашей таблицы properties , проверять, date_of_expiration ли date_of_expiration действия date_of_expiration а затем установить status в inactive .

Вы должны разрешить вызов метода без того, чтобы вы вошли в систему и, возможно, отключили компонент CSRF (если вы его используете):

 public function beforeFilter(Event $event){ $this->Auth->allow('cronjob_expiration_date'); if(in_array($this->request->action, ['cronjob_expiration_date'])) { $this->eventManager()->off($this->Csrf); } } 

Это необходимо, потому что «пользователь» cron не входит в систему.