/** * @param $queue * @return QueueElement|bool */ public function dequeue($queue) { $dbConnect = Db::getConnect(); $dbConnect->beginTransaction(); try { $query = Db::getConnect()->prepare("\n\t\t\t\tselect *\n\t\t\t\tfrom queue\n\t\t\t\twhere queue_name = :queue_name\n\t\t\t\tORDER BY id\n\t\t\t\tlimit 1 FOR UPDATE\n\t \t\t"); $query->bindParam(':queue_name', $queue); $query->execute(); $elementArray = $query->fetchAll(); $element = false; if (!empty($elementArray)) { $element = new QueueElement(); $element->setQueueName($elementArray[0]['queue_name']); $element->setFileUrl($elementArray[0]['file_url']); $element->setStatus($elementArray[0]['status']); $queryDelete = Db::getConnect()->prepare("\n\t\t\t\t\tdelete from queue where id = :id\n\t \t\t\t"); $queryDelete->bindParam(':id', $elementArray[0]['id']); $queryDelete->execute(); } $dbConnect->commit(); } catch (\Exception $e) { $dbConnect->rollBack(); $element = false; } return $element; }
public function run($args) { $db = Db::getConnect(); $res = $db->exec('CREATE TABLE IF NOT EXISTS queue ( id INT NOT NULL AUTO_INCREMENT, file_url VARCHAR (255), status INT, queue_name VARCHAR (255), PRIMARY KEY (id), KEY idx_queue_status (queue_name, status) ) ENGINE=MyISAM; '); if ($res !== false) { echo "application installed\n\r"; } else { echo "Something went wrong. Check the configuration.\n\r"; } }