/** * Build a job. * Null is returned if job cannot be created. * * @return Job|null */ public function build() { if (!$this->metadata->type) { $this->metadata->type = Yiiq::TYPE_SIMPLE; } if (!$this->metadata->queue) { $this->metadata->queue = Yiiq::DEFAULT_QUEUE; } $overwrite = $this->metadata->type === Yiiq::TYPE_REPEATABLE; if (!$this->metadata->save($overwrite)) { return; } $job = new Job($this->owner, $this->id); $job->metadata = $this->metadata; return $job; }