PHP code example of williamxsp / code-igniter-queue-worker
1. Go to this page and download the library: Download williamxsp/code-igniter-queue-worker 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/ */
williamxsp / code-igniter-queue-worker example snippets
$config['composer_autoload'] = TRUE;
use yidas\queue\worker\Controller as WorkerController;
class My_worker extends WorkerController
{
// Initializer
protected function init() {}
// Worker
protected function handleWork() {}
// Listener
protected function handleListen() {}
}
protected void init()
class My_worker extends \yidas\queue\worker\Controller
{
protected function init()
{
// Optional autoload (Load your own libraries or models)
$this->load->library('myjobs');
}
// ...
protected boolean handleWork(object $static=null)
class My_worker extends \yidas\queue\worker\Controller
{
protected function handleWork()
{
// Your own method to get a job from your queue in the application
$job = $this->myjobs->popJob();
// return `false` for job not found, which would close the worker itself.
if (!$job)
return false;
// Your own method to process a job
$this->myjobs->processJob($job);
// return `true` for job existing, which would keep handling.
return true;
}
// ...
class My_worker extends \yidas\queue\worker\Controller
{
protected function handleListen()
{
// Your own method to detect job existence
// return `true` for job existing, which leads to dispatch worker(s).
// return `false` for job not found, which would keep detecting new job
return $this->myjobs->exists();
}
// ...
use yidas\queue\worker\Controller as WorkerController;
class My_worker extends WorkerController
{
// Setting for that a listener could fork up to 10 workers
public $workerMaxNum = 10;
// Enable text log writen into specified file for listener and worker
public $logPath = 'tmp/my-worker.log';
}
$ php index.php myjob/work
$ php index.php myjob/listen
$ php index.php myjob/launch
$ php index.php myjob/launch/worker
ps
$ php index.php myjob/launch
Success to launch process `listen`: myjob/listen.
Called command: php /srv/ci-project/index.php myjob/listen > /dev/null &
------
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user 14650 0.0 0.7 327144 29836 pts/3 R+ 15:43 0:00 php /srv/ci-project/index.php myjob/listen
ps
$ php index.php myjob/launch
Skip: Same process `listen` is running: myjob/listen.
------
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
user 14650 0.4 0.9 337764 36616 pts/3 S 15:43 0:00 php /srv/ci-project/index.php myjob/listen
ps
...
www-data 2278 0.7 1.0 496852 84144 ? S Sep25 37:29 php-fpm: pool www
www-data 3129 0.0 0.4 327252 31064 ? S Sep10 0:34 php /srv/ci-project/index.php myjob/listen
...
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.