/** * {@inheritDoc} * * Note : see DoctrineQueue::parseOptionsToDateTime for schedule and delay options */ public function push(JobInterface $job, array $options = array()) { $scheduled = $this->parseOptionsToDateTime($options); $this->connection->insert($this->options->getTableName(), array('queue' => $this->getName(), 'status' => self::STATUS_PENDING, 'created' => new DateTime(null, new DateTimeZone(date_default_timezone_get())), 'data' => $job->jsonSerialize(), 'scheduled' => $scheduled), array(Type::STRING, Type::SMALLINT, Type::DATETIME, Type::TEXT, Type::DATETIME)); if (self::DATABASE_PLATFORM_POSTGRES == $this->connection->getDatabasePlatform()->getName()) { $id = $this->connection->lastInsertId($this->options->getTableName() . '_id_seq'); } else { $id = $this->connection->lastInsertId(); } $job->setId($id); }