DatabaseJobRecord.php
TLDR
This file defines the DatabaseJobRecord
class, which is responsible for interacting with the job record in the database. The class contains methods for incrementing the number of job attempts and updating the "reserved at" timestamp of the job. It also provides a dynamic getter method to access the underlying job information.
Methods
increment
This method increments the number of times the job has been attempted and returns the updated attempts count.
touch
This method updates the "reserved at" timestamp of the job with the current time and returns the updated reserved timestamp.
__get
This is a magic method that allows accessing the underlying job information dynamically using the specified key.
<?php
namespace Illuminate\Queue\Jobs;
use Illuminate\Support\InteractsWithTime;
class DatabaseJobRecord
{
use InteractsWithTime;
/**
* The underlying job record.
*
* @var \stdClass
*/
protected $record;
/**
* Create a new job record instance.
*
* @param \stdClass $record
* @return void
*/
public function __construct($record)
{
$this->record = $record;
}
/**
* Increment the number of times the job has been attempted.
*
* @return int
*/
public function increment()
{
$this->record->attempts++;
return $this->record->attempts;
}
/**
* Update the "reserved at" timestamp of the job.
*
* @return int
*/
public function touch()
{
$this->record->reserved_at = $this->currentTime();
return $this->record->reserved_at;
}
/**
* Dynamically access the underlying job information.
*
* @param string $key
* @return mixed
*/
public function __get($key)
{
return $this->record->{$key};
}
}