Yii 2 queue 의 대기 열 사용 에 대한 자세 한 설명

3737 단어 Yii2queue대열
잔말 말고 주로 문 서 를 봐 라.
공식 문서
yii2-queue 의 사용
1.설치

composer require --prefer-dist yiisoft/yii2-queue
2.common/config/main.php 에 설정
redis 를 구동 으로

return [
  'bootstrap' => [
    'queue', //            
  ],
  'components' => [
    'redis' => [
      'class' => \yii\redis\Connection::class,
      // ...
    ],
    'queue' => [
      'class' => \yii\queue\redis\Queue::class,
      'as log' => \yii\queue\LogBehavior::class,//         console/runtime/logs/app.log
      'redis' => 'redis', //          
      'channel' => 'queue', // Queue channel key
    ],
  ],
];
File 을 구동 으로

return [
  'bootstrap' => [
    'queue', //            
  ],
  'components' => [
    'queue' => [
      'class' => \yii\queue\file\Queue::class,
      'as log' => \yii\queue\LogBehavior::class,//         console/runtime/logs/app.log
      'path' => '@runtime/queue',
    ],
  ],
];
3.새 프론트 엔 드/컴 포 넌 트/다운 로드 Job

class DownloadJob extends BaseObject implements \yii\queue\JobInterface
{
  public $url;
  public $file;
  
  public function execute($queue)
  {
    file_put_contents($this->file, file_get_contents($this->url));
  }
}
4.콘 솔
콘 솔 은 대기 열 작업 을 감청 하고 처리 하 는 데 사 용 됩 니 다.
cmd 아래 감청 대기 열

yii queue/listen
5.대기 열 에 추가
대기 열 에 작업 추가:

Yii::$app->queue->push(new frontend\components\DownloadJob([
  'url' => 'http://example.com/image.jpg',
  'file' => '/tmp/image.jpg',
]));

작업 을 대기 열 로 보 내 는 중 5 분 지연 실행:

Yii::$app->queue->delay(5 * 60)->push(new frontend\components\DownloadJob([
  'url' => 'http://example.com/image.jpg',
  'file' => '/tmp/image.jpg',
]));
6.테스트
5 중의 프로그램 을 실행 하면 컨트롤 러 가 감청 하면 백 엔 드 에서 자동 으로 다운로드 합 니 다http://example.com/image.jpg로 컬 로/tmp/image.jpg
작업 자 시작
Supervisor 나 Systemd 를 사용 하여 다 중 프로 세 스 워 커 를 시작 할 수도 있 고 Cron 을 사용 할 수도 있 습 니 다.Supervisor 에 대해 서 말씀 드 리 겠 습 니 다.
centos 7 슈퍼 visor 사용
1.감독자 설치

yum update
yum install epel-release
yum install -y supervisor
#    
systemctl enable supervisord
#  
systemctl start supervisord
2.supervisor 명령

supervisorctl status          
supervisorctl reload   supervisord 
supervisorctl start|stop|restart          
3.프로필 추가
Supervisor 설정 파일 은 보통/etc/supervisord.d 디 렉 터 리 에 있 습 니 다.설정 파일 을 만 들 수 있 습 니 다.
주:파일 이름 은.ini 끝
다음은 예 다.

[program:yii-queue-worker]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /var/www/my_project/yii queue/listen --verbose=1 --color=0
autostart=true
autorestart=true
user=www-data
numprocs=4
redirect_stderr=true
stdout_logfile=/var/www/my_project/log/yii-queue-worker.log

이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기