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;
}