public function sendPendingMails() { if ($mails = ArQueue::find('all', ['conditions' => 'status = "pending" and send_at < NOW()'])) { $sendMail = SendMail::getInstance(); foreach ($mails as $mail) { $status = 'fail'; try { if ($sendMail->send($mail->mail_id, $mail->user_id)) { $status = 'pass'; } } finally { $mail->status = $status; $mail->save_direct(); } } } }