Create New Item
Item Type
File
Folder
Item Name
Search file in folder and subfolders...
Are you sure want to rename?
gilour
/
laravel
/
pulse
/
src
/
Recorders
:
UserJobs.php
Advanced Search
Upload
New Item
Settings
Back
Back Up
Advanced Editor
Save
<?php namespace Laravel\Pulse\Recorders; use Carbon\CarbonImmutable; use Illuminate\Queue\Events\JobQueued; use Laravel\Pulse\Pulse; /** * @internal */ class UserJobs { use Concerns\Ignores, Concerns\Sampling; /** * The events to listen for. * * @var list<class-string> */ public array $listen = [ JobQueued::class, ]; /** * Create a new recorder instance. */ public function __construct( protected Pulse $pulse, ) { // } /** * Record the job. */ public function record(JobQueued $event): void { if ($event->connectionName === 'sync') { return; } [$timestamp, $name, $userIdResolver] = [ CarbonImmutable::now()->getTimestamp(), match (true) { is_string($name = $event->job) => $name, method_exists($event->job, 'displayName') => $event->job->displayName(), default => $event->job::class, }, $this->pulse->authenticatedUserIdResolver(), ]; $this->pulse->lazy(function () use ($timestamp, $name, $userIdResolver) { if ( ($userId = $userIdResolver()) === null || ! $this->shouldSample() || $this->shouldIgnore($name) ) { return; } $this->pulse->record( type: 'user_job', key: (string) $userId, timestamp: $timestamp, )->count(); }); } }