public function end() { if ($this->qid) { $queueJob = QueueJob::get($this->qid); $queueJob = $queueJob->finish(); Redis::LSET(config('queue-managers.name'), $queueJob->qid, $queueJob->toJson()); } }
/** * Bootstrap the application services. * * @return void */ public function boot() { if (config('queue.default') != 'sync') { Queue::after(function (JobProcessed $event) { $job = ''; if (isset($event->data['data']['command'])) { $job = unserialize($event->data['data']['command']); } else { if (isset($event->data['data']['data'])) { $job = unserialize($event->data['data']['data']); } } if (!empty($job)) { $id = sha1(serialize($job)); } else { if (isset($event->data['data'])) { $id = md5(json_encode($event->data['data'])); } } $queueJob = $this->client()->get($id); if ($queueJob) { $queueJob = $queueJob->finish(); $this->client()->put($queueJob->queueId, $queueJob->toJson()); } }); Queue::before(function (JobProcessing $event) { $job = ''; if (isset($event->data['data']['command'])) { $job = unserialize($event->data['data']['command']); } else { if (isset($event->data['data']['data'])) { $job = unserialize($event->data['data']['data']); } } if (!empty($job)) { $id = sha1(serialize($job)); } else { if (isset($event->data['data'])) { $id = md5(json_encode($event->data['data'])); } } $queueJob = $this->client()->get($id); if ($queueJob) { $queueJob = $queueJob->initialization($event->job, $event->data); $this->client()->put($queueJob->queueId, $queueJob->toJson()); } else { $queueJob = QueueJob::make($id, $event->data); $this->client()->put($queueJob->queueId, $queueJob->toJson()); } }); Queue::failing(function ($event) { // $event->connectionName // $event->data // $event->data }); } }
static function pagination($order, $num) { $colltions = []; $length = Redis::HLEN(config('queue-managers.name')); if ($length > 0) { $arrray = Redis::HVALS(config('queue-managers.name')); if (count($arrray > 0)) { $jobs = []; if (!empty($order)) { $arrray = self::sort($arrray, $order); foreach ($arrray as $value) { if (!empty($value)) { $jobs[] = QueueJob::toBase($value); } else { return []; } } } else { foreach ($arrray as $value) { if (!empty($value)) { $jobArray = json_decode($value); $jobs[] = QueueJob::toBase($jobArray); } else { return []; } } } $colltion = collect($jobs); $colltions = $colltion->forPage(request('page') ? request('page') : 1, 10); } } return new LengthAwarePaginator($colltions, $length, $num, request('page') ? request('page') : 1, ['path' => Paginator::resolveCurrentPath(), 'pageName' => 'page']); }