Home > Article > Backend Development > php-resque: Redis-based background task system
php-resque is a lightweight background task system based on Redis, with simple functional design and flexible configuration. Compared with the MQ system, which is large and comprehensive, this one looks small and beautiful.
PHP CLI
mode.
##install
composer config -g repo.packagist composer https://packagist.phpcomposer.com
Composer: This package is abandoned and no longer maintained. The author suggests using the resque/php-resque package instead.Updated to the new extension package:composer require "chrisboulton/php-resque 1.2"
resque/php-resque
composer require resque/php-resque
Write JobDemoJob.php
<?php class DemoJob { public function perform() { // Work work work //echo $this->args['name']; } }
Enqueue operation
<?php Resque::setBackend('localhost:6379'); $args = array( 'name' => 'hanmeimei', ); Resque::enqueue('default', DemoJob::class, $args);
Worker coderesque-worker.php
<?php $redis_dsn = '127.0.0.1:6379'; putenv("REDIS_BACKEND=$redis_dsn"); // 引入队列的入口程序 $resque = realpath(dirname(__FILE__) . '/vendor/chrisboulton/php-resque/resque.php'); require_once $resque;
The environment variables for starting worker
php-resque are:
QUEUE – This is necessary and will determine the worker What tasks are to be performed, the most important ones come first, such as QUEUE=notify,mail,log. It can also be set to QUEUE=* to execute all tasks.
APP_INCLUDE – Optional, used to load files. You can set it to APP_INCLUDE=require.php and introduce all Job Classes in require.php.
#COUNT – Set the number of workers, the default is 1 COUNT=5.
REDIS_BACKEND – Set the ip and port of Redis. If not set, the default is to connect to localhost:6379.
LOGGING, VERBOSE – Set log, VERBOSE=1.
VVERBOSE - A more detailed log, which can be opened and viewed when VVERBOSE=1 debug.
INTERVAL – The interval at which the worker checks the queue. The default is five seconds INTERVAL=5.
PIDFILE - If you are a billing worker, you can specify PIDFILE to write the pid, for example, PIDFILE=/var/run/resque.pid.
BACKGROUND You can throw resque to the background for execution. Or just use
php resque.php &.
QUEUE=counter php resque-worker.php
At this point, the installation and use of php-resque has been completed. The following chapters are tool plug-ins, for reference only.
Interface
Install
gem install resque-web -v 0.0.8Run
resque-web -p 40000
Monitor
/usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.confMonitoring project configuration
/etc/supervisor/conf.d/lumen_resque.conf
[program:worker_lumen_resque] directory=/home/wwwroot/mysite command=php resque-worker.php environment=QUEUE='default'Advantages:
PHP Tutorial column to learn!
The above is the detailed content of php-resque: Redis-based background task system. For more information, please follow other related articles on the PHP Chinese website!