Ejemplo n.º 1
0
                Dao::beginTransaction();
                EmailSender::sendEmail($message->getFrom(), $message->getTo(), $message->getSubject(), $message->getBody(), $message->getAttachmentAssetIdArray());
                $message->setStatus(Message::STATUS_SENT)->save();
                Dao::commitTransaction();
                self::_logMsg("    SUCCESS sending message(ID=" . $message->getId() . ').', __CLASS__, __FUNCTION__);
            } catch (Exception $ex) {
                Dao::rollbackTransaction();
                $message->setStatus(Message::STATUS_FAILED)->save();
                self::_logMsg("    ERROR sending message(ID=" . $message->getId() . ': ' . $ex->getMessage(), __CLASS__, __FUNCTION__);
                self::_logMsg("    ERROR sending message(ID=" . $message->getId() . ': ' . $ex->getTraceAsString(), __CLASS__, __FUNCTION__);
            }
        }
        $end = new UDate();
        self::_logMsg("== FINISHED: " . count($messages) . " Message(s) == ", __CLASS__, __FUNCTION__);
    }
    private static function _logMsg($msg, $className, $funcName)
    {
        $now = new UDate();
        echo trim($now) . '(UTC)::' . $className . '::' . $funcName . ': ' . $msg . "\n";
        return $now;
    }
    private static function _getAndMarkMessages()
    {
        $randId = StringUtilsAbstract::getRandKey();
        Message::updateByCriteria('transId = ?, status = ?', 'active = 1 and status = ?', array($randId, Message::STATUS_SENDING, Message::STATUS_NEW));
        return Message::getAllByCriteria('transId = ? and status = ?', array($randId, Message::STATUS_SENDING));
    }
}
Core::setUser(UserAccount::get(UserAccount::ID_SYSTEM_ACCOUNT));
MessageSender::run();