public function releaseTimedout()
    {
        $trx = models\DbMessage::getDb()->transaction !== null ? null : models\DbMessage::getDb()->beginTransaction();
        $primaryKey = models\DbMessage::primaryKey();
        $message_ids = models\DbMessage::find()
            ->withQueue($this->id)
            ->timedout($this->timeout)
            ->select($primaryKey)
            ->asArray()
            ->all();
        models\DbMessage::updateAll(['status' => Message::AVAILABLE], ['in', $primaryKey, $message_ids]);
        if ($trx !== null) {
            $trx->commit();
        }

        return $message_ids;
    }