php-resque: Redis 기반 백그라운드 작업 시스템

步履不停
풀어 주다: 2023-04-06 22:12:02
원래의
3111명이 탐색했습니다.

php-resque: Redis 기반 백그라운드 작업 시스템

php-resque를 사용하는 이유는 무엇입니까?

php-resque는 Redis 기반의 경량 백그라운드 작업 시스템으로 단순한 기능적 디자인과 유연한 구성을 갖추고 있습니다. 크고 포괄적인 MQ 시스템과 비교하면 이 시스템은 작고 아름답게 보입니다.

php-resque 역할 분할

  • Job은 작업을 정의하고 특정 비즈니스 로직을 담당합니다.
  • 작업 입금/검색을 담당하는 대기열 대기열
  • Worker는 대기열에서 작업을 가져와 실행합니다. 일반적으로 PHP CLI 모드에서는 백그라운드 데몬 모드로 실행됩니다. PHP CLI模式下,后台守护方式运行。

使用

install

  • 如果下载慢, 可以配置 composer 国内镜像
composer config -g repo.packagist composer https://packagist.phpcomposer.com
로그인 후 복사
  • 安装php-resque

旧版

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
로그인 후 복사

编写Job

DemoJob.php

<?php
class DemoJob
{
    public function perform()
    {
        // Work work work
        //echo $this->args['name'];
    }
}
로그인 후 복사

入队列操作

<?php

Resque::setBackend(&#39;localhost:6379&#39;);
$args = array(
      &#39;name&#39; => 'hanmeimei',
    );
Resque::enqueue('default', DemoJob::class, $args);
로그인 후 복사

Worker代码

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;
로그인 후 복사

启动worker

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 &amp;就可以了。

示例

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

사용


install
  • 다운로드가 느린 경우 작곡가 국내 미러를 구성할 수 있습니다
/usr/bin/python /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
로그인 후 복사
  • php-resque 설치
  • 이전 버전
  • Composer: 이 패키지는 폐기되었으며 더 이상 유지되지 않습니다. 저자는 대신 resque/php-resque 패키지를 사용할 것을 제안합니다.
  • [program:worker_lumen_resque]
    directory=/home/wwwroot/mysite
    command=php resque-worker.php
    environment=QUEUE='default'
    로그인 후 복사
    업데이트됨 새로운 확장 패키지 포함: resque/php-resque

    rrreee

    🎜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 &amp;를 사용하세요. 🎜🎜🎜🎜Example🎜rrreee
    🎜이제 php-resque 설치 및 사용이 완료되었습니다. 🎜🎜다음 장은 참고용으로만 사용되는 도구 플러그인입니다. 🎜

    🎜🎜🎜

    인터페이스 resque-web🎜🎜PHP-Resque의 실행 상태 모니터링🎜🎜Installation🎜rrreee🎜 🎜rrreee🎜🎜🎜

    Monitorsupervisor🎜🎜서비스 시작🎜rrreee🎜프로젝트 구성 모니터링🎜 /etc/supervisor/conf.d/lumen_resque.conf🎜 실행 rrreee 🎜장점: 🎜🎜🎜비정상 종료 후 자동으로 다시 시작하도록 프로그램을 구성할 수 있습니다. 🎜🎜프로그램 실행 사용자를 지정합니다. 🎜🎜프로세스 수를 설정할 수 있습니다. 🎜🎜자동 다시 시작 🎜🎜supervisord가 시작된 후 자동으로 스크립트 시작 🎜🎜 그룹 관리 🎜🎜🎜PHP 관련 더 많은 기술 기사를 보려면 🎜PHP Tutorial🎜 칼럼을 방문하여 알아보세요! 🎜

    위 내용은 php-resque: Redis 기반 백그라운드 작업 시스템의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

    관련 라벨:
    원천:php.cn
    본 웹사이트의 성명
    본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
    인기 튜토리얼
    더>
    최신 다운로드
    더>
    웹 효과
    웹사이트 소스 코드
    웹사이트 자료
    프론트엔드 템플릿