복붙노트

[REDIS] 어떻게 레디 스에 laravel 큐에 대기중인 모든 작업을 얻으려면?

REDIS

어떻게 레디 스에 laravel 큐에 대기중인 모든 작업을 얻으려면?

큐 리스너가 서버에서 시작되지 않은, (레디 스 드라이버를 사용하여) 밀어 몇 가지 작업.

어떻게 계산 (또는 모든 수) 논문 작업을 수 있을까? 이 정보를 얻을 수있는 장인 명령을 발견하지 않았다.

해결법

  1. ==============================

    1.아직 여기에 대한 답변을 찾는 사람이 방법이라면 나는 그것을 할 :

    아직 여기에 대한 답변을 찾는 사람이 방법이라면 나는 그것을 할 :

    $connection = null;
    $default = 'default';
    
    //For the delayed jobs
    var_dump( \Queue::getRedis()->connection($connection)->zrange('queues:'.$default.':delayed' ,0, -1) );
    
    //For the reserved jobs
    var_dump( \Queue::getRedis()->connection($connection)->zrange('queues:'.$default.':reserved' ,0, -1) );
    

    $ 연결은 널 (null)이 기본적으로 인 레디 스 연결 이름이며, $ 큐는 '기본'디폴트로 큐 / 튜브의 이름입니다!

  2. ==============================

    2.Laravel 5.3 이후 당신은 단순히 큐 :: 크기를 사용할 수 있습니다 () (PR 참조).

    Laravel 5.3 이후 당신은 단순히 큐 :: 크기를 사용할 수 있습니다 () (PR 참조).

  3. ==============================

    3.또한이 작업을 수행하여 레디 스 외관에 직접 사용할 수 있습니다 :

    또한이 작업을 수행하여 레디 스 외관에 직접 사용할 수 있습니다 :

    use Redis;
    
    \Redis::lrange('queues:$queueName', 0, -1);
    

    Laravel 5.6에서 테스트를 제외한 모든 5.x를 위해 일한다

  4. ==============================

    4.난 그냥, 최근에 이러한 명령을 알고, PHP Laravel dev에 3 년 안함 나에 대한 수치심 때문에. (

    난 그냥, 최근에 이러한 명령을 알고, PHP Laravel dev에 3 년 안함 나에 대한 수치심 때문에. (

    당신이 당신의 큐의 레디 스 드라이버를 사용하는 경우, 당신은 이름으로 남아있는 모든 작업을 셀 수 :

    use Redis;
    
    // List all keys with status (awaiting, reserved, delayed)
    Redis::keys('*');
    
    // Count by name
    $queueName = 'default';
    echo Redis::llen('queues:' . $queueName);
    
    // To count by status:
    echo Redis::zcount('queues:' . $queueName . ':delayed', '-inf', '+inf');
    echo Redis::zcount('queues:' . $queueName . ':reserved', '-inf', '+inf');
    

    즉시 결과를 확인하려면, 당신은 PHP는 장인 어설프게을 사용 레디 스는 :: ( '큐 : 기본') llen 칠 수 ;.

  5. ==============================

    5.당신은 수평선을 설치할 수 있습니다. Laravel 호라이즌은 큐를 모니터링하기위한 대시 보드를 제공하고, 당신이 당신의 큐에 더 많은 구성을 수행 할 수 있습니다.

    당신은 수평선을 설치할 수 있습니다. Laravel 호라이즌은 큐를 모니터링하기위한 대시 보드를 제공하고, 당신이 당신의 큐에 더 많은 구성을 수행 할 수 있습니다.

    composer require laravel/horizon
    
    php artisan vendor:publish --provider="Laravel\Horizon\HorizonServiceProvider"
    

    당신은 .env의 설정 파일 및 설정 / horizon.php 파일을 설정해야합니다.

    Laravel 5.6 테스트

  6. ==============================

    6.사람은 여전히 ​​Laravel의 이전 버전에 대한 접근 방법을 찾고 있다면 :

    사람은 여전히 ​​Laravel의 이전 버전에 대한 접근 방법을 찾고 있다면 :

    $connection = 'queue';
    $queueName = 'default';
    $totalQueuedLeads = Redis::connection($connection)->zcount('queues:'.$queueName.':delayed' , '-inf', '+inf');
    
  7. from https://stackoverflow.com/questions/35412779/how-to-get-all-pending-jobs-in-laravel-queue-on-redis by cc-by-sa and MIT license