News

Bulk Job Dispatching with Bus::bulk() in Laravel 13.13

Published
Bulk Job Dispatching with Bus::bulk() in Laravel 13.13 image

Release updates

Never miss a Laravel release

Get an email whenever a new Laravel release lands.

The Laravel team released v13.13.0 with a new method for dispatching many jobs in a single batch, storage-backed attachment helpers for notifications, PSR-18 support for the HTTP client, and a handful of validation and database fixes.

  • Bus::bulk() for efficient dispatching of many jobs
  • attachFromStorage() helpers on notification mail messages
  • HTTP client usable as a PSR-18 client
  • Cache attribute support for memoization
  • MariaDB vector index support
  • Validation and query builder bug fixes

What's New

Bus::bulk() for Dispatching Many Jobs

@jackbayliss added Bus::bulk(), which dispatches an array of jobs to the queue while grouping them by connection and queue so they can be pushed using the underlying bulk() queue method. Unlike Bus::batch(), it does not track batch progress in the database, so it fits cases where you want to enqueue many jobs without that overhead.

use Illuminate\Support\Facades\Bus;
 
Bus::bulk(array_map(fn (User $user) => new ProcessUser($user), $users));

PR: #60297

Storage Attachments for Notification Mail Messages

@LucasCavalheri added attachFromStorage() and attachFromStorageDisk() to the notification MailMessage class, bringing it in line with the attachment helpers already available on mailables.

(new MailMessage)
->attachFromStorage('/path/to/file')
->attachFromStorageDisk('s3', 'invoices/1.pdf', 'invoice.pdf', [
'mime' => 'application/pdf',
]);

PR: #60268

HTTP Client as a PSR-18 Client

@willrowe made the client returned by Http::buildClient() usable anywhere a Psr\Http\Client\ClientInterface is expected. You can hand Laravel's HTTP client to a third-party package that requires a PSR-18 client, so its requests run through the same middleware and handler stack as the rest of your application.

$geocoder = new GeocodingService(Http::buildClient());

PR: #60295

Cache Attribute Memoization

@jenky updated the Cache attribute to support injecting a memoized cache instance into constructors and resolve methods, building on the cache memoization added in earlier 13.x releases.

PR: #60309

MariaDB Vector Index Support

@michielvaneerd added vector index support for MariaDB in the schema builder.

PR: #60334

Validation and Query Fixes

This release also includes several fixes:

References

Paul Redmond photo

Staff writer at Laravel News. Full stack web developer and author.

Sponsored

serpapi logo
SerpApi

The Web Search API for Your LLM and AI Applications

Visit SerpApi

The latest

View all →
VMPal: Give Your AI Agent a Whole Computer image

VMPal: Give Your AI Agent a Whole Computer

Read article
Synapse: A Dev Dashboard for Laravel AI SDK Agents image

Synapse: A Dev Dashboard for Laravel AI SDK Agents

Read article
Decide with Jev: Three Questions in One Request with the Laravel AI SDK image

Decide with Jev: Three Questions in One Request with the Laravel AI SDK

Read article
Grant: Enum-Based Roles and Permissions for Laravel image

Grant: Enum-Based Roles and Permissions for Laravel

Read article
Securing Filament plugins with Plumb image

Securing Filament plugins with Plumb

Read article
LayaPHP: Self-Hosted Text Classification for PHP and Laravel image

LayaPHP: Self-Hosted Text Classification for PHP and Laravel

Read article