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


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

У меня есть Property Сущность..

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

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

Я искал в Google и я обнаружил, что то, что я назвал Запланированной задачей..

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

Author: Cœur, 2016-04-21

2 answers

  1. Создайте оболочку с функцией для поиска свойства с истекшим сроком действия и изменения значения на неактивное.
  2. Запускайте оболочку из CronJob каждый день в 00:00:00
 4
Author: Salines, 2016-04-21 12:11:01

Вы можете настроить задание cron, которое будет вызывать функцию в вашем контроллере. Затем ваша функция выберет все записи из вашей таблицы properties, проверит, истек ли срок действия 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 "пользователь" не вошло в систему.

 -1
Author: st2erw2od, 2016-04-21 12:04:46