70 lines
1.5 KiB
PHP
70 lines
1.5 KiB
PHP
|
<?php
|
||
|
|
||
|
namespace App\Models;
|
||
|
|
||
|
use Illuminate\Database\Eloquent\Model;
|
||
|
use Illuminate\Support\Facades\Config;
|
||
|
|
||
|
class Job extends Model
|
||
|
{
|
||
|
public $timestamps = false;
|
||
|
|
||
|
protected $casts = [
|
||
|
'payload' => 'array',
|
||
|
'reserved_at' => 'datetime',
|
||
|
'available_at' => 'datetime',
|
||
|
'created_at' => 'datetime',
|
||
|
];
|
||
|
|
||
|
public function __construct(array $attributes = [])
|
||
|
{
|
||
|
parent::__construct($attributes);
|
||
|
$this->table = Config::get('queue.connections.' . (Config::get('queue.default', 'database')) . '.table', 'jobs');
|
||
|
}
|
||
|
|
||
|
public function getDisplayNameAttribute()
|
||
|
{
|
||
|
return $this->payload['displayName'];
|
||
|
}
|
||
|
|
||
|
public function getMaxTriesAttribute()
|
||
|
{
|
||
|
return $this->payload['maxTries'];
|
||
|
}
|
||
|
|
||
|
public function getDelayAttribute()
|
||
|
{
|
||
|
return $this->payload['delay'];
|
||
|
}
|
||
|
|
||
|
public function getUUIDAttribute()
|
||
|
{
|
||
|
return $this->payload['uuid'];
|
||
|
}
|
||
|
|
||
|
public function getTimeoutAttribute()
|
||
|
{
|
||
|
return $this->payload['timeout'];
|
||
|
}
|
||
|
|
||
|
public function getRetryUntilAttribute()
|
||
|
{
|
||
|
return !is_null($this->payload['retryUntil']) ? new \Carbon\Carbon($this->payload['retryUntil']) : null;
|
||
|
}
|
||
|
|
||
|
public function getTimeoutAtAttribute()
|
||
|
{
|
||
|
return !is_null($this->payload['timeout_at']) ? new \Carbon\Carbon($this->payload['timeout_at']) : null;
|
||
|
}
|
||
|
|
||
|
public function getCommandNameAttribute()
|
||
|
{
|
||
|
return $this->payload['data']['commandName'];
|
||
|
}
|
||
|
|
||
|
public function getCommandAttribute()
|
||
|
{
|
||
|
return unserialize($this->payload['data']['command']);
|
||
|
}
|
||
|
}
|