1. Go to this page and download the library: Download n0nag0n/simple-job-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/ */
n0nag0n / simple-job-queue example snippets
use n0nag0n\Job_Queue
// default is mysql based job queue
$Job_Queue = new Job_Queue('mysql', [
'mysql' => [
'table_name' => 'new_table_name', // default is job_queue_jobs
'use_compression' => false // default is true to use COMPRESS() and UNCOMPRESS() for payload
]
]);
$PDO = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'user', 'pass');
$Job_Queue->addQueueConnection($PDO);
$Job_Queue->selectPipeline('send_important_emails');
$Job_Queue->addJob(json_encode([ 'something' => 'that', 'ends' => 'up', 'a' => 'string' ]));
use n0nag0n\Job_Queue
// default is mysql based job queue
$Job_Queue = new Job_Queue('pgsql', [
'pgsql' => [
'table_name' => 'new_table_name', // default is job_queue_jobs
]
]);
$PDO = new PDO('pgsql:dbname=testdb;host=127.0.0.1', 'user', 'pass');
$Job_Queue->addQueueConnection($PDO);
$Job_Queue->selectPipeline('send_important_emails');
$Job_Queue->addJob(json_encode([ 'something' => 'that', 'ends' => 'up', 'a' => 'string' ]));
use n0nag0n\Job_Queue
// default is mysql based job queue
$Job_Queue = new Job_Queue('sqlite', [
'sqlite' => [
'table_name' => 'new_table_name' // default is job_queue_jobs
]
]);
$PDO = new PDO('sqlite:example.db');
$Job_Queue->addQueueConnection($PDO);
$Job_Queue->selectPipeline('send_important_emails');
$Job_Queue->addJob(json_encode([ 'something' => 'that', 'ends' => 'up', 'a' => 'string' ]));
use n0nag0n\Job_Queue
// default is mysql based job queue
$Job_Queue = new Job_Queue('beanstalkd');
$pheanstalk = Pheanstalk\Pheanstalk::create('127.0.0.1');
$Job_Queue->addQueueConnection($pheanstalk);
$Job_Queue->selectPipeline('send_important_emails');
$Job_Queue->addJob(json_encode([ 'something' => 'that', 'ends' => 'up', 'a' => 'string' ]));
$Job_Queue = new n0nag0n\Job_Queue('mysql');
$PDO = new PDO('mysql:dbname=testdb;host=127.0.0.1', 'user', 'pass');
$Job_Queue->addQueueConnection($PDO);
$Job_Queue->watchPipeline('send_important_emails');
while(true) {
$job = $Job_Queue->getNextJobAndReserve();
// adjust to whatever makes you sleep better at night (for database queues only, beanstalkd does not need this if statement)
if(empty($job)) {
usleep(500000);
continue;
}
echo "Processing {$job['id']}\n";
$payload = json_decode($job['payload'], true);
try {
$result = doSomethingThatDoesSomething($payload);
if($result === true) {
$Job_Queue->deleteJob($job);
} else {
// this takes it out of the ready queue and puts it in another queue that can be picked up and "kicked" later.
$Job_Queue->buryJob($job);
}
} catch(Exception $e) {
$Job_Queue->buryJob($job);
}
}
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.