목차
Laravel 대기열이란 무엇입니까?
Laravel 대기열 사용
1단계: 대기열 드라이버 구성
2단계: 큐 작업 클래스 생성
3단계: 작업을 대기열에 푸시
4단계: 대기열 작업 실행
Supervisor를 사용하여 비동기 작업 관리
1단계: Supervisor 설치
2단계: Supervisor 구성 파일 생성
3단계: 감독자 다시 로드
4단계: 감독자 로그 보기
Conclusion
PHP 프레임워크 Laravel Laravel 개발: Laravel 대기열 및 감독자를 사용하여 비동기 작업을 관리하는 방법은 무엇입니까?

Laravel 개발: Laravel 대기열 및 감독자를 사용하여 비동기 작업을 관리하는 방법은 무엇입니까?

Jun 13, 2023 pm 04:04 PM
supervisor 비동기 작업 laravel queues

Laravel 개발: Laravel 대기열과 감독자를 사용하여 비동기 작업을 관리하는 방법은 무엇입니까?

현대 웹 애플리케이션에서 비동기 작업은 일상 업무의 필수적인 부분이 되었습니다. 비동기 작업은 애플리케이션 응답 시간을 개선하고 사용자 경험을 최적화하며 애플리케이션 확장성을 향상시킬 수 있습니다. Laravel 대기열은 비동기 작업 및 메시지 대기열을 처리하기 위해 Laravel 프레임워크에서 제공하는 강력한 도구입니다. 이 기사에서는 Laravel 대기열의 개념과 사용법을 소개하고 이를 Supervisor와 결합하여 비동기 작업을 관리합니다.

Laravel 대기열이란 무엇입니까?

Laravel 대기열은 비동기 작업 및 메시지 대기열을 처리하는 방법입니다. Laravel 대기열을 사용하면 웹 요청의 응답 시간에 영향을 주지 않고 시간이 많이 걸리는 작업을 대기열에 넣을 수 있습니다. 예를 들어 이메일 보내기, 비디오 처리 또는 PDF 생성은 모두 시간이 많이 걸리는 작업입니다. 대기열을 사용하여 이러한 작업을 백그라운드 처리에 배치하면 애플리케이션의 효율성과 응답성이 향상됩니다.

Laravel Queues는 일부 내장된 대기열 드라이버를 통해 Database, Redis, Beanstalkd 및 Amazon SQS와 같은 여러 백엔드 기술을 지원합니다. 이를 통해 개발자는 선호하는 대기열 기술을 사용하여 비동기 작업을 처리할 수 있습니다.

Laravel 대기열 사용

아래에서는 Laravel 대기열을 사용하여 비동기 작업을 처리하는 방법을 단계별로 소개합니다.

1단계: 대기열 드라이버 구성

Laravel 구성 파일에는 대기열과 대기열 드라이버를 구성하는 데 사용할 수 있는 queue.php라는 파일이 있습니다. 다음 명령을 사용하여 queue.php 파일을 생성할 수 있습니다:

php artisan queue:table
php artisan queue:failed-table
php artisan migrate
로그인 후 복사

이렇게 하면 마이그레이션 파일과 대기열 테이블이 생성됩니다. 마이그레이션 명령을 실행하여 마이그레이션을 수행합니다.

queue.php 파일에는 여러 대기열 드라이버를 사용할 수 있는 옵션이 있습니다.

  • Database Driver - 작업을 데이터베이스에 저장하고 보급형 대기열 시스템으로 사용할 수 있습니다.
  • Redis 드라이버 - Redis의 내장 대기열 지원을 사용합니다.
  • Beanstalkd Driver - Beanstalkd 메시지 대기열 서비스를 사용합니다.
  • Amazon SQS 드라이버 - Amazon Simple Queue Service(SQS)를 사용합니다.

예를 들어 Redis 큐 드라이버를 사용하려면 queue.php 파일을 다음과 같이 구성하세요.

'default' => env('QUEUE_CONNECTION', 'redis'),
'connections' => [
    'redis' => [
        'driver' => 'redis',
        'connection' => 'default',
        'queue' => env('REDIS_QUEUE', 'default'),
        'retry_after' => 90,
        'block_for' => null,
    ],
]
로그인 후 복사

2단계: 큐 작업 클래스 생성

다음으로 다음을 위한 큐 작업 클래스를 생성해야 합니다. 비동기 작업을 처리합니다. 이 클래스는 작업의 논리를 정의하는 간단한 PHP 클래스여야 합니다. 예를 들어, 다음 코드는 이메일 전송을 위한 비동기 작업 클래스입니다:

class SendEmail implements ShouldQueue
{
    use Dispatchable, InteractsWithQueue, Queueable, SerializesModels;

    protected $email;
    /**
     * Create a new job instance.
     *
     * @return void
     */
    public function __construct($email)
    {
        $this->email = $email;
    }
    /**
     * Execute the job.
     *
     * @return void
     */
    public function handle()
    {
        Mail::to($this->email)->send(new WelcomeEmail());
    }
}
로그인 후 복사

이 클래스는 Laravel이 이 클래스를 비동기 작업 클래스로 변환하도록 지시하는 데 필요한 ShouldQueue 인터페이스를 구현합니다. handler() 메서드는 작업의 특정 논리를 정의하므로 비동기식으로 처리해야 하는 작업을 여기에서 수행할 수 있습니다.

3단계: 작업을 대기열에 푸시

이제 대기열 작업과 대기열 드라이버가 준비되었으므로 다음 단계는 작업을 대기열에 넣는 것입니다. 다음 코드를 사용하여 프로젝트 어디에서나 Eloquent 대기열을 호출할 수 있습니다:

use AppJobsSendEmail; 
use IlluminateSupportFacadesQueue;
...
Queue::push(new SendEmail('example@test.com'));
로그인 후 복사

또는 다음과 같이 dispatch() 메서드를 사용하여 대기열에 작업을 넣을 수 있습니다:

SendEmail::dispatch('example@test.com');
로그인 후 복사

4단계: 대기열 작업 실행

일단 작업을 대기열에 넣으면 작업이 대기열로 전달되어 실행을 기다립니다. 다음 코드를 사용하여 대기열을 실행할 수 있습니다.

php artisan queue:work
로그인 후 복사

이 명령을 실행하면 리스너가 시작되고 대기열의 작업이 처리됩니다.

Supervisor를 사용하여 비동기 작업 관리

큐 작업은 백그라운드에서 실행되어야 하기 때문에 작업이 계속 실행될 수 있도록 서버에 프로세스 데몬을 설정해야 합니다. Supervisor는 백그라운드 프로세스가 비정상적으로 종료되지 않도록 하고 필요할 때 다시 시작하는 데 일반적으로 사용되는 프로세스 데몬입니다.

1단계: Supervisor 설치

Ubuntu 시스템에서는 다음 명령을 사용하여 Supervisor를 설치할 수 있습니다.

sudo apt-get update
sudo apt-get install supervisor
로그인 후 복사

2단계: Supervisor 구성 파일 생성

/etc/supervisor/conf.d 디렉터리에 생성 A myqueue.conf와 같은 구성 파일:

nano /etc/supervisor/conf.d/myqueue.conf
로그인 후 복사

구성 파일에 다음을 추가하고 프로그램과 일치하도록 경로, 명령 및 사용자 이름을 변경하십시오.

[program:myqueue]
process_name=%(program_name)s_%(process_num)02d
command=/usr/bin/php /path/to/artisan queue:work --sleep=3 --tries=3 --daemon
autostart=true
autorestart=true
user=username
numprocs=1
redirect_stderr=true
stdout_logfile=/path/to/storage/logs/myqueue.log
로그인 후 복사

3단계: 감독자 다시 로드

변경 후 감독자의 구성 파일을 로드하려면 감독자에게 구성 파일을 다시 로드하도록 알려야 합니다. 다음 명령을 사용하여 감독자를 다시 로드합니다.

sudo supervisorctl reread

sudo supervisorctl update

sudo supervisorctl start all
로그인 후 복사

4단계: 감독자 로그 보기

감독자의 로그 파일에서 비동기 작업의 출력 및 오류 정보를 볼 수 있습니다. 예를 들어, 구성 파일에 지정된 경로와 로그 파일 이름을 보면 Supervisor 로그를 볼 수 있습니다.

tail -f /path/to/storage/logs/myqueue.log
로그인 후 복사

Conclusion

이 글에서는 Laravel 큐를 사용하는 방법과 Supervisor를 사용하여 비동기 작업을 관리하는 방법을 소개합니다. Laravel 큐를 사용하면 쉽게 줄일 수 있습니다. 시간이 많이 걸리는 작업 작업은 대기열에 추가되어 애플리케이션의 효율성과 반응성을 높여줍니다. Supervisor를 사용하면 백그라운드 작업이 계속 실행되고 필요할 때 자동으로 다시 시작될 수 있습니다. 이 글이 귀하의 발전에 도움이 되기를 바랍니다.

위 내용은 Laravel 개발: Laravel 대기열 및 감독자를 사용하여 비동기 작업을 관리하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Laravel 개발: Laravel Queue를 사용하여 비동기 작업을 처리하는 방법은 무엇입니까? Laravel 개발: Laravel Queue를 사용하여 비동기 작업을 처리하는 방법은 무엇입니까? Jun 13, 2023 pm 08:32 PM

애플리케이션이 더욱 복잡해짐에 따라 대량의 데이터와 프로세스를 처리하고 관리하는 것이 어려워졌습니다. 이러한 상황을 처리하기 위해 Laravel은 사용자에게 Laravel Queue(Queue)라는 매우 강력한 도구를 제공합니다. 이를 통해 개발자는 사용자 인터페이스에 영향을 주지 않고 백그라운드에서 이메일 보내기, PDF 생성, 이미지 자르기 처리 등과 같은 작업을 실행할 수 있습니다. 이번 글에서는 Laravel 큐를 사용하는 방법을 살펴보겠습니다. LaravelQueue 대기열이란 무엇입니까?

FastAPI에서 비동기 작업 처리를 위해 메시지 큐를 사용하는 방법 FastAPI에서 비동기 작업 처리를 위해 메시지 큐를 사용하는 방법 Jul 30, 2023 pm 09:21 PM

FastAPI에서 비동기 작업 처리를 위해 메시지 대기열을 사용하는 방법 소개: 웹 애플리케이션에서는 이메일 보내기, 보고서 생성 등과 같이 시간이 많이 걸리는 작업을 처리해야 하는 경우가 종종 있습니다. 이러한 작업이 동기식 요청-응답 프로세스에 배치되면 사용자는 오랜 시간을 기다려야 하므로 사용자 경험과 서버 응답 속도가 저하됩니다. 이 문제를 해결하기 위해 비동기 작업 처리에 메시지 큐를 사용할 수 있습니다. 이 기사에서는 메시지 대기열을 사용하여 FastAPI 프레임워크에서 비동기 작업을 처리하는 방법을 소개합니다.

개발 제안: ThinkPHP 프레임워크를 사용하여 비동기 작업을 구현하는 방법 개발 제안: ThinkPHP 프레임워크를 사용하여 비동기 작업을 구현하는 방법 Nov 22, 2023 pm 12:01 PM

"개발 제안: ThinkPHP 프레임워크를 사용하여 비동기 작업을 구현하는 방법" 인터넷 기술의 급속한 발전으로 인해 웹 응용 프로그램은 많은 수의 동시 요청과 복잡한 비즈니스 논리를 처리하기 위한 요구 사항이 점점 더 높아졌습니다. 시스템 성능과 사용자 경험을 향상시키기 위해 개발자는 이메일 보내기, 파일 업로드 처리, 보고서 생성 등과 같이 시간이 많이 걸리는 작업을 수행하기 위해 비동기 작업을 사용하는 것을 종종 고려합니다. PHP 분야에서 널리 사용되는 개발 프레임워크인 ThinkPHP 프레임워크는 비동기 작업을 구현하는 몇 가지 편리한 방법을 제공합니다.

ThinkPHP6 대기열을 관리하기 위해 Supervisor를 사용하는 방법은 무엇입니까? ThinkPHP6 대기열을 관리하기 위해 Supervisor를 사용하는 방법은 무엇입니까? Jun 12, 2023 am 08:51 AM

웹 애플리케이션이 계속해서 개발됨에 따라 애플리케이션의 안정성과 가용성을 유지하기 위해 수많은 작업을 처리해야 합니다. 대기열 시스템을 사용하는 것이 하나의 솔루션입니다. ThinkPHP6은 작업을 관리하기 위한 내장형 대기열 시스템을 제공합니다. 그러나 많은 수의 작업을 처리하려면 더 나은 대기열 관리가 필요하며 이는 Supervisor를 사용하여 달성할 수 있습니다. 이 문서에서는 Supervisor를 사용하여 ThinkPHP6 대기열을 관리하는 방법을 소개합니다. 그 전에 몇 가지 기본 개념을 이해해야 합니다. 대기열 시스템 대기열 시스템은

PHP8.0의 프로세스 관리 라이브러리: Supervisor PHP8.0의 프로세스 관리 라이브러리: Supervisor May 14, 2023 am 08:28 AM

PHP 언어가 지속적으로 개발되면서 개발자의 도구 상자에 점점 더 많은 기능과 라이브러리가 도입되었습니다. 중요한 기능 중 하나는 프로세스 관리입니다. PHP8.0 버전에서 Supervisor는 프로세스를 쉽게 시작, 중지, 모니터링 및 다시 시작하고 프로세스의 안정적인 작동을 유지하는 데 도움이 되는 매우 강력한 프로세스 관리 라이브러리입니다. 감독관이란 무엇입니까? Supervisor는 Python으로 작성된 프로세스 관리 도구로, 쉽게 시작, 중지 및 모니터링할 수 있습니다.

비동기 작업을 사용하여 PHP에서 백그라운드 처리를 구현하는 방법 비동기 작업을 사용하여 PHP에서 백그라운드 처리를 구현하는 방법 Jun 27, 2023 pm 03:10 PM

웹 개발에서는 데이터 처리, 파일 업로드, 이메일 전송 등과 같은 일부 작업을 완료하는 데 오랜 시간이 걸립니다. 이러한 작업이 포그라운드에서 수행되면 사용자 경험이 저하되고 페이지가 오랫동안 응답하지 않을 수도 있습니다. 따라서 비동기 작업을 사용하면 이러한 작업을 백그라운드에 배치하고 시스템의 동시성 기능을 향상시키며 사용자 경험과 포그라운드 상호 작용을 더 원활하게 만들 수 있습니다. 널리 사용되는 서버측 스크립팅 언어인 PHP는 비동기 작업 구현을 훌륭하게 지원합니다. 이 기사에서는 PHP에서 이질성을 사용하는 방법을 소개합니다.

Laravel 개발: Laravel 작업 대기열을 사용하여 비동기 작업을 구현하는 방법은 무엇입니까? Laravel 개발: Laravel 작업 대기열을 사용하여 비동기 작업을 구현하는 방법은 무엇입니까? Jun 13, 2023 pm 07:12 PM

Laravel 개발: LaravelJobQueues를 사용하여 비동기 작업을 구현하는 방법은 무엇입니까? 웹 애플리케이션 개발에서는 시간이 많이 걸리고 즉각적이지 않은 응답 작업을 수행해야 하는 경우가 많습니다. 이러한 작업은 서버 리소스를 점유하고 심지어 다른 사용자의 요청을 차단하며 사용자 경험에 큰 영향을 미칩니다. LaravelJobQueues는 이러한 시간 소모적인 작업을 비동기 작업으로 변환하고 대기열을 사용하여 처리할 수 있는 솔루션을 제공합니다. 이번 글에서는 Larave를 소개하겠습니다.

ThinkPHP6을 사용하여 비동기 작업 구현 ThinkPHP6을 사용하여 비동기 작업 구현 Jun 20, 2023 pm 01:14 PM

최근 인터넷 서비스의 지속적인 발전으로 인해 메시지 큐, 이벤트 모니터링, 예약된 작업 등과 같은 다양한 비동기 작업이 웹 개발의 중요한 부분이 되었습니다. 비동기 작업 기술을 사용하면 웹 사이트의 성능을 크게 향상시키고, 서버의 부담을 줄일 수 있으며, 사용자의 대기 시간을 줄이고 사용자 경험을 높이는 데에도 도움이 됩니다. 이 기사에서는 ThinkPHP6을 사용하여 비동기 작업을 구현하는 방법을 소개합니다. 1. 비동기 작업 개요 비동기 작업은 프로세스에서 특정 작업이 순차적으로 실행되지 않고 다른 처리 장치로 넘겨지는 것을 의미합니다.

See all articles