>  기사  >  PHP 프레임워크  >  Laravel에서 지연 대기열을 수정하는 방법

Laravel에서 지연 대기열을 수정하는 방법

PHPz
PHPz원래의
2023-04-19 10:08:421155검색

최근 몇 년 동안 Laravel 프레임워크는 점점 더 대중화되었으며 지연 대기열은 중요한 기능 중 하나입니다. 지연 대기열은 개발자가 비동기 작업을 쉽게 관리하고 애플리케이션 성능과 유지 관리성을 크게 향상시키는 데 도움이 될 수 있습니다. 어떤 특별한 경우에는 특정 프로젝트의 요구 사항을 충족하기 위해 Laravel 지연 대기열의 일부 기본값을 수정해야 합니다. 이 글에서는 Laravel 지연 대기열의 매개변수를 수정하는 방법을 소개합니다.

Laravel의 지연 대기열은 주로 Redis 또는 데이터베이스를 사용하여 구현됩니다. Laravel 구성 파일(config/queue.php)에서 대기열의 기본 설정을 볼 수 있습니다. 예를 들어 Laravel의 지연 대기열에 대한 기본 시간 초과는 60초(기본값은 timeout 속성에 설정되어 있음)이고, 재시도 횟수에 대한 기본 설정은 3입니다(기본값은 trys 속성에 설정되어 있음). 작업 처리 시간이 초과되거나 실패하면 Laravel은 자동으로 작업을 다음 지연 대기열에 추가하고 작업의 우선 순위를 낮춥니다. 기본 설정을 수정하여 이러한 값을 변경할 수 있지만 이러한 설정은 이미 작동 중인 대기열에는 적용되지 않습니다. 따라서 큐가 실행되는 동안 이를 수정해야 합니다.

먼저 대기열 리스너(queue:work)를 열어야 합니다. 대기열 리스너를 열 때 artisan 명령줄을 통해 작업자의 이름을 지정해야 합니다. 예를 들어 command_name 매개변수를 사용하여 다음과 같이 작업자 이름을 지정합니다.

php artisan queue:work --command_name=worker1

작업자 이름의 기본값은 "default"입니다. 명령줄에서 작업자 이름을 지정하면 후속 코드에서 작업자를 쉽게 식별할 수 있다는 이점이 있습니다.

다음으로 프로젝트에 새 작업자 클래스를 추가해야 합니다. 다음 명령을 실행하여 app/Jobs 디렉터리에 새 작업자 클래스를 생성할 수 있습니다.

php artisan make:job MyCustomWorker

그런 다음 MyCustomWorker 클래스의 핸들 메서드에 사용자 지정 논리를 추가할 수 있습니다. 예를 들어 지연 시간을 기본값인 60초에서 120초로 변경하려면 핸들 메서드에 다음 코드를 추가하면 됩니다.

public function handle()
{
    $this->delay(120);
    // your custom code goes here
}

이 지연 메서드는 작업 지연 시간을 120초로 수정하여 기본값을 재정의합니다. 지연 . 핸들 메소드의 다른 코드는 지정된 지연 후에 실행됩니다.

작업자 클래스에서 작업의 재시도 횟수를 수정할 수도 있습니다. 예를 들어, 재시도 횟수를 기본값인 3회에서 5회로 변경하려면 MyCustomWorker 클래스에 다음 코드를 추가하면 됩니다.

public function handle()
{
    $this->tries(5);
    // your custom code goes here
}

이 시도 메서드는 작업의 재시도 횟수를 5회로 수정합니다. 기본 재시도 횟수를 무시합니다. 핸들 메소드의 다른 코드는 작업이 실패한 후 지정된 횟수만큼 자동으로 재시도합니다.

위 단계를 통해 Laravel 프로젝트에서 지연 대기열의 일부 기본 매개변수를 수정할 수 있습니다. 이 접근 방식은 특정 프로젝트의 요구 사항에 따라 맞춤형 방식으로 비동기 작업을 관리하여 애플리케이션 성능과 유지 관리성을 향상시키는 데 도움이 될 수 있습니다.

위 내용은 Laravel에서 지연 대기열을 수정하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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