php-resque는 Redis 기반의 경량 백그라운드 작업 시스템으로 단순한 기능적 디자인과 유연한 구성을 갖추고 있습니다. 크고 포괄적인 MQ 시스템과 비교하면 이 시스템은 작고 아름답게 보입니다.
PHP CLI
모드에서는 백그라운드 데몬 모드로 실행됩니다. PHP CLI
模式下,后台守护方式运行。
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.
composer require "chrisboulton/php-resque 1.2"
更新为新的扩展包:resque/php-resque
composer require resque/php-resque
DemoJob.php
<?php class DemoJob { public function perform() { // Work work work //echo $this->args['name']; } }
<?php Resque::setBackend('localhost:6379'); $args = array( 'name' => 'hanmeimei', ); Resque::enqueue('default', DemoJob::class, $args);
resque-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;
php-resque
的环境变量有:
QUEUE
– 这个是必要的,会决定 worker 要执行什么任务,重要的在前,例如 QUEUE=notify,mail,log 。也可以设定為 QUEUE=* 表示执行所有任务。
APP_INCLUDE
– 可选,加载文件用的。可以设成 APP_INCLUDE=require.php ,在 require.php 中引入所有 Job 的 Class即可。
COUNT
– 设定 worker 数量,预设是1 COUNT=5 。
REDIS_BACKEND
– 设定 Redis 的 ip, port。如果没设定,预设是连 localhost:6379 。
LOGGING
, VERBOSE – 设定 log, VERBOSE=1 即可。
VVERBOSE
– 比较详细的 log, VVERBOSE=1 debug 的时候可以开出来看。
INTERVAL
– worker 检查 queue 的间隔,预设是五秒 INTERVAL=5 。
PIDFILE
– 如果你是开单 worker,可以指定 PIDFILE 把 pid 写入,例如 PIDFILE=/var/run/resque.pid 。
BACKGROUND
可以把 resque 丢到背景执行。或者使用 php resque.php &
就可以了。
示例
QUEUE=counter php resque-worker.php
至此,php-resque的安装和使用已经完毕。
后面的章节是工具插件, 仅供参考。
resque-web
监控 PHP-Resque 的运行状况
安装
gem install resque-web -v 0.0.8
运行
resque-web -p 40000
supervisor
/usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
Composer: 이 패키지는 폐기되었으며 더 이상 유지되지 않습니다. 저자는 대신 resque/php-resque 패키지를 사용할 것을 제안합니다.
[program:worker_lumen_resque] directory=/home/wwwroot/mysite command=php resque-worker.php environment=QUEUE='default'
resque/php-resque
🎜Write Job🎜🎜DemoJob.php🎜rrreee🎜🎜 🎜🎜큐 작업 입력🎜rrreee🎜🎜🎜🎜작업자 코드🎜🎜resque-worker.php🎜rrreee🎜🎜🎜🎜작업자 시작🎜🎜php -resque의 환경 변수는 다음과 같습니다: 🎜🎜🎜🎜<code>QUEUE
- 이는 필요하며 QUEUE=notify와 같이 작업자가 가장 중요한 작업을 먼저 수행할지 결정합니다. ,메일,로그. 모든 작업을 실행하려면 QUEUE=*로 설정할 수도 있습니다. 🎜🎜🎜🎜APP_INCLUDE
- 선택 사항이며 파일을 로드하는 데 사용됩니다. 이를 APP_INCLUDE=require.php로 설정하고 require.php에 모든 작업 클래스를 도입할 수 있습니다. 🎜🎜🎜🎜COUNT
– 작업자 수를 설정합니다. 기본값은 1 COUNT=5입니다. 🎜🎜🎜🎜REDIS_BACKEND
– Redis의 IP와 포트를 설정합니다. 설정하지 않으면 기본값은 localhost:6379에 연결하는 것입니다. 🎜🎜🎜🎜LOGGING
, VERBOSE – 로그 설정, VERBOSE=1. 🎜🎜🎜🎜VVERBOSE
- VVERBOSE=1 디버그일 때 열고 볼 수 있는 더 자세한 로그입니다. 🎜🎜🎜🎜INTERVAL
– 작업자가 대기열을 확인하는 간격입니다. 기본값은 5초 INTERVAL=5입니다. 🎜🎜🎜🎜PIDFILE
- 청구 담당자인 경우 PIDFILE을 지정하여 pid를 쓸 수 있습니다(예: PIDFILE=/var/run/resque.pid). 🎜🎜🎜🎜BACKGROUND
는 실행을 위해 백그라운드에 resque를 던질 수 있습니다. 아니면 php resque.php &
를 사용하세요. 🎜🎜🎜🎜Example🎜rrreee🎜이제 php-resque 설치 및 사용이 완료되었습니다. 🎜🎜다음 장은 참고용으로만 사용되는 도구 플러그인입니다. 🎜
resque-web
🎜🎜PHP-Resque의 실행 상태 모니터링🎜🎜Installation🎜rrreee🎜 🎜rrreee🎜🎜🎜supervisor
🎜🎜서비스 시작🎜rrreee🎜프로젝트 구성 모니터링🎜 /etc/supervisor/conf.d/lumen_resque.conf🎜 실행 rrreee 🎜장점: 🎜🎜🎜비정상 종료 후 자동으로 다시 시작하도록 프로그램을 구성할 수 있습니다. 🎜🎜프로그램 실행 사용자를 지정합니다. 🎜🎜프로세스 수를 설정할 수 있습니다. 🎜🎜자동 다시 시작 🎜🎜supervisord가 시작된 후 자동으로 스크립트 시작 🎜🎜 그룹 관리 🎜🎜🎜PHP 관련 더 많은 기술 기사를 보려면 🎜PHP Tutorial🎜 칼럼을 방문하여 알아보세요! 🎜위 내용은 php-resque: Redis 기반 백그라운드 작업 시스템의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!