Do not speak Portuguese? Translate this site with Google or Bing Translator
Laravel - Filas Queue

Posted on: June 24, 2020 07:24 PM

Posted by: Renato

Categories: Laravel

Views: 2894

Anote as conexões vs. Filas nota na documentação fila de Laravel , que se aplica a todas as filas motoristas além da SQS, tanto quanto eu estou ciente.

Antes de iniciar as filas do Laravel, é importante entender a distinção entre "conexões" e "filas". No seu arquivo de configuração config / queue.php, há uma opção de configuração de conexões. Essa opção define uma conexão específica com um serviço de back-end, como Amazon SQS, Beanstalk ou Redis. No entanto, qualquer conexão de fila especificada pode ter várias "filas", que podem ser consideradas pilhas ou pilhas diferentes de trabalhos em fila.

 

Observe que cada exemplo de configuração de conexão no arquivo de configuração da fila contém um atributo da fila. Essa é a fila padrão para a qual os trabalhos serão despachados quando forem enviados para uma determinada conexão. Em outras palavras, se você despachar um trabalho sem definir explicitamente para qual fila ele deve ser despachado, o trabalho será colocado na fila definida no atributo de fila da configuração da conexão:

 

Com efeito, você registrará uma conexão de fila no seu config/queues.phparquivo e o defaultparâmetro será simplesmente a fila para a qual os trabalhos são despachados por padrão, se outra fila não for fornecida.

 

A resposta de Vitaly acima seria a abordagem correta para o problema (consolide em uma única conexão com uma fila padrão) e ajuste seus trabalhos para serem enviados para filas diferentes, se necessário. Este é um contexto importante (eu acho) importante de como funciona a configuração da fila.

 

```

 

'connections' => [

 

    'Register' => [ //

        'driver'        =>  'database',

        'table'         =>  'tbljobs',

        'queue'         =>  'low',  //

        'retry_after'   =>  5,

    ],

],

```

 

Sugiro que você modifique seu código da seguinte maneira:

```

'connections' => [

    'Register' => [

        'driver'        =>  'database',

        'table'         =>  'tbljobs',

        'queue'         =>  'default',

        'retry_after'   =>  5,

    ],

],

```

Trabalho de alta prioridade - Código do controlador para e-mail de registro

```

$job = (new SendActivationEmail($Data))

        ->onConnection('Register')

        ->onQueue("high");

dispatch($job);

```

Trabalho de prioridade média - Código do controlador para redefinir senha

```

$job = (new SendResetPasswordEmail($this->tokens->create($user), $user))

        ->onConnection('Register')

        ->onQueue("medium");

dispatch($job);

```

Trabalho de baixa prioridade

 

``` 

dispatch((new LowPriorityJob())->onQueue("low")); 

```

Trabalho prioritário padrão

```

dispatch((new DefaultPriorityJob()));

-> onConnection ('Register') // esta linha é útil se você especificar que a conexão padrão é Register in .env QUEUE_DRIVER = Register

```

## Execute seus trabalhos

 

este comando executa seus trabalhos armazenados na conexão padrão. No seu caso Registre-se

 

php artisan queue:work --queue=high,medium,low,default

este comando executa seus trabalhos armazenados na conexão customConnectionName

```

php artisan queue:work customConnectionName --queue=high,medium,low,default

```

 

**********************************************************************************************************************

 

Você deve ter duas filas definidas no seu config/queue.phparquivo. Digamos, um com o nome "alto" e o outro "baixo".

 

Em seguida, você pode enviar tarefas para eles conforme necessário, da seguinte maneira:

```

$job = (new SendResetPasswordEmail($this->tokens->create($user), $user))

        ->onConnection('ForgotPassword');

dispatch($job)->onQueue('high'));

```

Nota: ->onQueue('high')

 

Por fim, você executaria: php artisan queue:work --queue=high,low

 

Isso iniciará um trabalhador que processará todos os trabalhos na fila "alta" antes de passar para trabalhos em "baixo".

 


2

Share

Donate to Site


About Author

Renato

Developer

Add a Comment
Comments 0 Comments

No comments yet! Be the first to comment

Blog Search


Categories

OUTROS (16) Variados (109) PHP (133) Laravel (171) Black Hat (3) front-end (29) linux (114) postgresql (39) Docker (28) rest (5) soap (1) webservice (6) October (1) CMS (2) node (7) backend (13) ubuntu (56) devops (25) nodejs (5) npm (3) nvm (1) git (8) firefox (1) react (7) reactnative (5) collections (1) javascript (7) reactjs (8) yarn (0) adb (1) Solid (2) blade (3) models (1) controllers (0) log (1) html (2) hardware (3) aws (14) Transcribe (2) transcription (1) google (4) ibm (1) nuance (1) PHP Swoole (5) mysql (31) macox (4) flutter (1) symfony (1) cor (1) colors (2) homeOffice (2) jobs (3) imagick (2) ec2 (1) sw (1) websocket (2) markdown (1) ckeditor (1) tecnologia (14) faceapp (1) eloquent (14) query (4) sql (40) ddd (3) nginx (9) apache (4) certbot (1) lets-encrypt (3) debian (12) liquid (1) magento (2) ruby (1) LETSENCRYPT (1) Fibonacci (1) wine (1) transaction (1) pendrive (1) boot (1) usb (1) prf (1) policia (2) federal (1) lucena (1) mongodb (4) paypal (1) payment (1) zend (1) vim (4) ciencia (6) js (1) nosql (1) java (1) JasperReports (1) phpjasper (1) covid19 (1) saude (1) athena (1) cinnamon (1) phpunit (2) binaural (1) mysqli (3) database (42) windows (6) vala (1) json (2) oracle (1) mariadb (4) dev (12) webdev (24) s3 (4) storage (1) kitematic (1) gnome (2) web (2) intel (3) piada (1) cron (2) dba (18) lumen (1) ffmpeg (2) android (2) aplicativo (1) fedora (2) shell (4) bash (3) script (3) lider (1) htm (1) csv (1) dropbox (1) db (3) combustivel (2) haru (1) presenter (1) gasolina (1) MeioAmbiente (1) Grunt (1) biologia (1) programming (22) performance (3) brain (1) smartphones (1) telefonia (1) privacidade (1) opensource (3) microg (1) iode (1) ssh (3) zsh (2) terminal (3) dracula (1) spaceship (1) mac (2) idiomas (1) laptop (2) developer (37) api (5) data (1) matematica (1) seguranca (2) 100DaysOfCode (9) hotfix (1) documentation (1) laravelphp (10) RabbitMQ (3) Elasticsearch (1) redis (2) Raspberry (4) Padrao de design (4) JQuery (1) angularjs (4) Dicas (43) Kubernetes (3) vscode (2) backup (1) angular (3) servers (2) pipelines (1) AppSec (1) DevSecOps (4) rust (1) RustLang (1) Mozilla (1) algoritimo (1) sqlite (1) Passport (2) jwt (5) security (2) translate (1) kube (2) iot (1) politica (2) bolsonaro (1) flow (1) podcast (1) Brasil (1) containers (3) traefik (1) networking (1) host (1) POO (2) microservices (2) bug (1) cqrs (1) arquitetura (3) Architecture (4) sail (3) militar (1) artigo (1) economia (1) forcas armadas (1) ffaa (1) autenticacao (2) autorizacao (2) authentication (4) authorization (3) NoCookies (1) wsl (4) memcached (1) macos (2) unix (2) kali-linux (1) linux-tools (5) apple (1) noticias (2) composer (1) rancher (1) k8s (1) escopos (1) orm (1) jenkins (4) github (5) gitlab (3) queue (1) Passwordless (1) sonarqube (1) phpswoole (1) laraveloctane (1) Swoole (1) Swoole (1) octane (1) Structurizr (1) Diagramas (1) c4 (1) c4-models (1) compactar (1) compression (1) messaging (1) restfull (1) eventdrive (1) services (1) http (1) Monolith (1) microservice (1) historia (1) educacao (1) cavalotroia (1) OOD (0) odd (1) chatgpt (1) openai (3) vicuna (1) llama (1) gpt (1) transformers (1) pytorch (1) tensorflow (1) akitando (1) ia (1) nvidia (1) agi (1) guard (1) multiple_authen (2) rpi (1) auth (1) auth (1) livros (2) ElonMusk (2) Oh My Zsh (1) Manjaro (1) BigLinux (2) ArchLinux (1) Migration (1) Error (1) Monitor (1) Filament (1) LaravelFilament (1) replication (1) phpfpm (1) cache (1) vpn (1) l2tp (1) zorin-os (1) optimization (1) scheduling (1) monitoring (2) linkedin (1) community (1) inteligencia-artificial (2) wsl2 (1) maps (1) API_KEY_GOOGLE_MAPS (1) repmgr (1) altadisponibilidade (1) banco (1) modelagemdedados (1) inteligenciadedados (4) governancadedados (1) bancodedados (2) Observability (1) picpay (1) ecommerce (1) Curisidades (1) Samurai (1) KubeCon (1) GitOps (1) Axios (1) Fetch (1) Deepin (1) vue (4) nuxt (1) PKCE (1) Oauth2 (2) webhook (1) TypeScript (1) tailwind (1) gource (2)

New Articles



Get Latest Updates by Email