Elgg\Queue\DatabaseQueue::dequeue PHP Метод

dequeue() публичный Метод

public dequeue ( )
    public function dequeue()
    {
        $prefix = $this->db->prefix;
        $name = $this->db->sanitizeString($this->name);
        $worker_id = $this->db->sanitizeString($this->workerId);
        $update = "UPDATE {$prefix}queue \n\t\t\tSET worker = '{$worker_id}'\n\t\t\tWHERE name = '{$name}' AND worker IS NULL\n\t\t\tORDER BY id ASC LIMIT 1";
        $num = $this->db->updateData($update, true);
        if ($num === 1) {
            $select = "SELECT data FROM {$prefix}queue\n\t\t\t\tWHERE worker = '{$worker_id}'";
            $obj = $this->db->getDataRow($select);
            if ($obj) {
                $data = unserialize($obj->data);
                $delete = "DELETE FROM {$prefix}queue\n\t\t\t\t\tWHERE name = '{$name}' AND worker = '{$worker_id}'";
                $this->db->deleteData($delete);
                return $data;
            }
        }
        return null;
    }