HEX
Server: Apache
System: Linux sg2plzcpnl489574.prod.sin2.secureserver.net 4.18.0-553.52.1.lve.el8.x86_64 #1 SMP Wed May 21 15:31:29 UTC 2025 x86_64
User: bpw3460lz1vy (8493017)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: /home/bpw3460lz1vy/public_html/wp-content/plugins/wp-migrate-db/class/Common/Queue/Queue.php
<?php

namespace DeliciousBrains\WPMDB\Common\Queue;

use DeliciousBrains\WPMDB\Common\Queue\Connections\ConnectionInterface;

class Queue {

	/**
	 * @var ConnectionInterface
	 */
	protected $connection;

	/**
	 * @var Cron
	 */
	protected $cron;

	/**
	 * Queue constructor.
	 *
	 * @param ConnectionInterface $connection
	 */
	public function __construct( ConnectionInterface $connection ) {
		$this->connection = $connection;
	}

	/**
	 * Push a job onto the queue;
	 *
	 * @param Job $job
	 * @param int $delay
	 *
	 * @return bool|int
	 */
	public function push( Job $job, $delay = 0 ) {
		return $this->connection->push( $job, $delay );
	}

	/**
	 * Create a cron worker.
	 *
	 * @param int $attempts
	 * @param int $interval
	 *
	 * @return Cron
	 */
	public function cron( $attempts = 3, $interval = 5 ) {
		if ( is_null( $this->cron ) ) {
			$this->cron	= new Cron( get_class( $this->connection ), $this->worker( $attempts ), $interval );
			$this->cron->init();
		}

		return $this->cron;
	}

	/**
	 * Create a new worker.
	 *
	 * @param int $attempts
	 *
	 * @return Worker
	 */
	public function worker( $attempts ) {
		return new Worker( $this->connection, $attempts );
	}
}