PHP code example of moharram82 / queue

1. Go to this page and download the library: Download moharram82/queue library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

moharram82 / queue example snippets


$config = new \Moharram82\Queue\QueueConfig([
    'queue' => 'default',
    'retry_after' => 90, // in seconds
    'table' => 'queues', // database driver table name
]);

$database_connection_options = [
    'host' => '127.0.0.1',
    'username' => 'root',
    'password' => '',
    'database' => 'queue',
    'port' => 3306,
];

// create PDO database connection, which is   $database_connection_options['username'],
        $database_connection_options['password'],
        [
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET character_set_results=utf8',
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8',
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET character_set_client=utf8',
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET character_set_connection=utf8',
            PDO::MYSQL_ATTR_INIT_COMMAND => 'SET collation_connection=utf8_general_ci'
        ]
    );
    $connection->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    echo $e->getMessage();
    die;
}

// pass the connection as first optional parameter or database connection array as second optional parameter, then `\Moharram82\Queue\QueueConfig` as third optional parameter.
// keep in mind, you have to pass at least one of the first and the second parameters.
$config->setDriver(new \Moharram82\Queue\MySQLQueue($connection, [], $config));

$manager = new \Moharram82\Queue\QueueManager($config);

// create a Job class (which is a normal PHP class with a handle method) passing to it the object you want to process.

namespace Example;

class SendEmailJob
{
    public MailMessage $message;

    public function __construct(MailMessage $message)
    {
        $this->message = $message;
    }

    public function handle()
    {
        $this->message->send();
    }
}

$job = new \Example\SendEmailJob(new \Example\MailMessage());

// call the QueueManager instance's push method and pass to it the Job class object with an optional second parameter for the queue name.
$manager->push($job, 'default');

// call the QueueManager instance's run method.
// You can call the `run` method from a cron job or supervisor process.
$manager->run('default');
composer
composer