CoderFunda
  • Home
  • About us
    • Contact Us
    • Disclaimer
    • Privacy Policy
    • About us
  • Home
  • Php
  • HTML
  • CSS
  • JavaScript
    • JavaScript
    • Jquery
    • JqueryUI
    • Stock
  • SQL
  • Vue.Js
  • Python
  • Wordpress
  • C++
    • C++
    • C
  • Laravel
    • Laravel
      • Overview
      • Namespaces
      • Middleware
      • Routing
      • Configuration
      • Application Structure
      • Installation
    • Overview
  • DBMS
    • DBMS
      • PL/SQL
      • SQLite
      • MongoDB
      • Cassandra
      • MySQL
      • Oracle
      • CouchDB
      • Neo4j
      • DB2
      • Quiz
    • Overview
  • Entertainment
    • TV Series Update
    • Movie Review
    • Movie Review
  • More
    • Vue. Js
    • Php Question
    • Php Interview Question
    • Laravel Interview Question
    • SQL Interview Question
    • IAS Interview Question
    • PCS Interview Question
    • Technology
    • Other

15 February, 2022

Laravel Defibrillator: Keep Application Tasks Running At a Normal Rhythm

 Programing Coderfunda     February 15, 2022     Laravel, Packages, php     No comments   

 Laravel Defibrillator is a package by Michael Dyrynda that helps you ensure that aspects of your application should be running regularly are doing so.

This package can help by delaying the adding of jobs to overwhelmed queue workers while they catch up on a backlog of queue jobs, for example:

Consider a scheduled task that communicates with your application users on a regular interval. This scheduled task queues notifications to your users based on some condition within your application. In a normal situation, there is a handful of notifications to go out, and they are dispatched with in a few seconds. But an application error causes your application to spiral out of control. Queued notifications back up, your database is not being updated to flag notifications as having been sent, your error tracker floods with exceptions.

And then your scheduled task runs again.

Suddenly your queue has tens of thousands of pending jobs in it and you're stuck in a cycle that you can't keep up with.

Here's an example from the readme of how you might use this trait to keep an normal rhythm:

1// app/Console/Kernel.php
2$schedule->job(NotifyUsers::class)->everyMinute();
3 
4// app/Jobs/NotifyUsers.php
5public function handle()
6{
7 if ($this->hasAbnormalRhythm()) {
8 $this->defibrillate();
9 
10 return;
11 }
12 
13 // Regular processing
14 $this->defibrillate();
15}

You can also prevent lagging notifications from being sent if the heartbeat enters an abnormal rhythm:

1// app/Notifications/CustomerNotification.php
2public function shouldSend(): bool
3{
4 return Cache::get('NotifyUsers')?->isFuture() ?? false;
5}

This package has sensible defaults for an interval between normal rhythms, which are customizable when using the package's Defibrillator trait:

1use Defibrillator;
2 
3public function interval(): int
4{
5 return 30;
6}

You can learn more about this package, get full installation instructions, and view the source code on GitHub.

  • Share This:  
  •  Facebook
  •  Twitter
  •  Google+
  •  Stumble
  •  Digg
Email ThisBlogThis!Share to XShare to Facebook

Related Posts:

  • Manage Job Workflows with Venture Venture is a package to help you build and manage complex, asynchronous workflows in your Laravel applications. Here’s an example from the … Read More
  • Login As A Different User Quickly LaraPersonate is a new package by @supianIdz that allows you to log in as a different user quickly. This impersonation package is insp… Read More
  • Real-Time Chat Package for Laravel Chatify is a Laravel package by Munaf Aqeel Mahdi that adds a complete real-time chat system to your application without any addi… Read More
  • Generate and Extract Random Data with RandoPHP RandoPHP is a package by Roberto Butti that implements random generators (Integer, Char, Byte, etc.) and takes random samples from arr… Read More
  • PHP Progress Library to Track User Progress Progress is a PHP package to determine steps and progress with an expressive, object-oriented API:This progress package is a simple way of … Read More
Newer Post Older Post Home

0 comments:

Post a Comment

Thanks

Meta

Popular Posts

  • Write API Integrations in Laravel and PHP Projects with Saloon
    Write API Integrations in Laravel and PHP Projects with Saloon Saloon  is a Laravel/PHP package that allows you to write your API integratio...
  • Features CodeIgniter
    Features CodeIgniter There is a great demand for the CodeIgniter framework in PHP developers because of its features and multiple advan...
  • Laravel Breeze with PrimeVue v4
    This is an follow up to my previous post about a "starter kit" I created with Laravel and PrimeVue components. The project has b...
  • Fast Excel Package for Laravel
      Fast Excel is a Laravel package for importing and exporting spreadsheets. It provides an elegant wrapper around Spout —a PHP package to ...
  • Credit card validation in laravel
      Validation rules for credit card using laravel-validation-rules/credit-card package in laravel Install package laravel-validation-rules/cr...

Categories

  • Ajax (26)
  • Bootstrap (30)
  • DBMS (42)
  • HTML (12)
  • HTML5 (45)
  • JavaScript (10)
  • Jquery (34)
  • Jquery UI (2)
  • JqueryUI (32)
  • Laravel (1017)
  • Laravel Tutorials (23)
  • Laravel-Question (6)
  • Magento (9)
  • Magento 2 (95)
  • MariaDB (1)
  • MySql Tutorial (2)
  • PHP-Interview-Questions (3)
  • Php Question (13)
  • Python (36)
  • RDBMS (13)
  • SQL Tutorial (79)
  • Vue.js Tutorial (68)
  • Wordpress (150)
  • Wordpress Theme (3)
  • codeigniter (108)
  • oops (4)
  • php (853)

Social Media Links

  • Follow on Twitter
  • Like on Facebook
  • Subscribe on Youtube
  • Follow on Instagram

Pages

  • Home
  • Contact Us
  • Privacy Policy
  • About us

Blog Archive

  • September (100)
  • August (50)
  • July (56)
  • June (46)
  • May (59)
  • April (50)
  • March (60)
  • February (42)
  • January (53)
  • December (58)
  • November (61)
  • October (39)
  • September (36)
  • August (36)
  • July (34)
  • June (34)
  • May (36)
  • April (29)
  • March (82)
  • February (1)
  • January (8)
  • December (14)
  • November (41)
  • October (13)
  • September (5)
  • August (48)
  • July (9)
  • June (6)
  • May (119)
  • April (259)
  • March (122)
  • February (368)
  • January (33)
  • October (2)
  • July (11)
  • June (29)
  • May (25)
  • April (168)
  • March (93)
  • February (60)
  • January (28)
  • December (195)
  • November (24)
  • October (40)
  • September (55)
  • August (6)
  • July (48)
  • May (2)
  • January (2)
  • July (6)
  • June (6)
  • February (17)
  • January (69)
  • December (122)
  • November (56)
  • October (92)
  • September (76)
  • August (6)

  • Failed to install 'cordova-plugin-firebase': CordovaError: Uh oh - 9/21/2024
  • pyspark XPath Query Returns Lists Omitting Missing Values Instead of Including None - 9/20/2024
  • SQL REPL from within Python/Sqlalchemy/Psychopg2 - 9/20/2024
  • MySql Explain with Tobias Petry - 9/20/2024
  • How to combine information from different devices into one common abstract virtual disk? [closed] - 9/20/2024

Laravel News

  • Manipulate Image URLs in Laravel with the Image Transform Package - 6/19/2025
  • Handle Nested Arrays Elegantly with Laravel's fluent() Helper - 6/18/2025
  • Laravel 12.19 Adds a useEloquentBuilder Attribute, a FailOnException Queue Middleware, and More - 6/18/2025
  • Test Deferred Operations Easily with Laravel's withoutDefer Helper - 6/18/2025
  • Larallow is a Permissions Package With Support for Scopes - 6/17/2025

Copyright © 2025 CoderFunda | Powered by Blogger
Design by Coderfunda | Blogger Theme by Coderfunda | Distributed By Coderfunda