123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118 |
- <?php
-
- namespace Illuminate\Queue\Failed;
-
- use Illuminate\Support\Carbon;
- use Illuminate\Database\ConnectionResolverInterface;
-
- class DatabaseFailedJobProvider implements FailedJobProviderInterface
- {
- /**
- * The connection resolver implementation.
- *
- * @var \Illuminate\Database\ConnectionResolverInterface
- */
- protected $resolver;
-
- /**
- * The database connection name.
- *
- * @var string
- */
- protected $database;
-
- /**
- * The database table.
- *
- * @var string
- */
- protected $table;
-
- /**
- * Create a new database failed job provider.
- *
- * @param \Illuminate\Database\ConnectionResolverInterface $resolver
- * @param string $database
- * @param string $table
- * @return void
- */
- public function __construct(ConnectionResolverInterface $resolver, $database, $table)
- {
- $this->table = $table;
- $this->resolver = $resolver;
- $this->database = $database;
- }
-
- /**
- * Log a failed job into storage.
- *
- * @param string $connection
- * @param string $queue
- * @param string $payload
- * @param \Exception $exception
- * @return int|null
- */
- public function log($connection, $queue, $payload, $exception)
- {
- $failed_at = Carbon::now();
-
- $exception = (string) $exception;
-
- return $this->getTable()->insertGetId(compact(
- 'connection', 'queue', 'payload', 'exception', 'failed_at'
- ));
- }
-
- /**
- * Get a list of all of the failed jobs.
- *
- * @return array
- */
- public function all()
- {
- return $this->getTable()->orderBy('id', 'desc')->get()->all();
- }
-
- /**
- * Get a single failed job.
- *
- * @param mixed $id
- * @return object|null
- */
- public function find($id)
- {
- return $this->getTable()->find($id);
- }
-
- /**
- * Delete a single failed job from storage.
- *
- * @param mixed $id
- * @return bool
- */
- public function forget($id)
- {
- return $this->getTable()->where('id', $id)->delete() > 0;
- }
-
- /**
- * Flush all of the failed jobs from storage.
- *
- * @return void
- */
- public function flush()
- {
- $this->getTable()->delete();
- }
-
- /**
- * Get a new query builder instance for the table.
- *
- * @return \Illuminate\Database\Query\Builder
- */
- protected function getTable()
- {
- return $this->resolver->connection($this->database)->table($this->table);
- }
- }
|