Yii 2 queue 의 대기 열 사용 에 대한 자세 한 설명
공식 문서
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
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
BullJS로 대기열에 넣기LIFO 개념을 사용하여 작동합니다. 즉, 스택에 추가되는 마지막 항목이 가장 먼저 액세스되는 항목이 되는 반면 대기열은 FIFO를 사용하여 작동하므로 삽입된 첫 번째 항목이 대기열에서 가장 먼저 제거됩니다. 가장 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.