Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Managing queues with Laravel Horizon (AFUP)

Managing queues with Laravel Horizon (AFUP)

Freek Van der Herten

May 17, 2019
Tweet

More Decks by Freek Van der Herten

Other Decks in Technology

Transcript

  1. Supercharging 

    queues in Laravel 

    with Horizon

    View Slide

  2. About me
    Freek Van der Herten
    Partner & developer at Spatie
    @freekmurze
    murze.be
    ohdear.app

    View Slide

  3. fullstackeurope.com

    View Slide

  4. Open Source 

    Software

    View Slide

  5. Spatie creates a lot of it
    ± 200 packages on Packagist
    ± 2,300,000 downloads a month
    ± 35,000,000 total downloads
    All Postcardware!

    View Slide

  6. Highlights Laravel
    Popular
    laravel-backup
    laravel-medialibrary
    laravel-permission

    View Slide

  7. Highlights PHP
    Popular
    browsershot
    crawler
    fractalistic
    image-optimizer

    View Slide

  8. spatie.be/open-source

    View Slide

  9. spatie.be/open-source/postcards

    View Slide

  10. Let's talk 

    about queues

    View Slide

  11. This talk
    Tiny bit of theory
    Queueing basics in Laravel
    Introducing Horizon

    View Slide

  12. Theory

    View Slide

  13. Why do we use queues?
    Users want fast responses
    Intensive tasks shouldn't be done inside the request
    Move work to a queue

    View Slide

  14. WORK
    TIME
    TIME
    REQUEST REQUEST WORK

    View Slide

  15. ONE QUEUE MULTIPLE QUEUES
    Queue 1 Queue 2 Queue 3
    TIME
    TIME
    WORK A WORK A WORK B WORK C
    WORK B
    WORK C

    View Slide

  16. Queues 

    in Laravel

    View Slide

  17. Feature rich
    Priorities
    Chaining
    Delays
    Testable

    View Slide

  18. Driver based
    Database, Redis, Beanstalkd, Amazon SQS
    Can create your own driver
    Sync driver is handy locally

    View Slide

  19. Demo

    View Slide

  20. Introducing
    Horizon

    View Slide

  21. Free first party package
    Dashboard for queues
    Scheduler
    Code driven configuration
    Laravel & Redis specific

    View Slide

  22. Demo

    View Slide

  23. In closing

    View Slide

  24. Summary
    Feature rich
    Driver based
    Easy testable
    Horizon is a powerful tool to manage jobs

    View Slide

  25. Resources
    github.com/spatie/laravel-queues-demo-app
    laravel.com/docs/5.8/queues
    laravel.com/docs/5.8/horizon
    ohdear.app/blog/how-to-size-scale-your-laravel-queues

    View Slide

  26. Thank you!
    speakerdeck.com/freekmurze/horizon-afup
    spatie.be/open-source
    murze.be
    ohdear.app
    fullstackeurope.com

    View Slide