Looking to hire Laravel developers? Try LaraJobs

laravel-connection-pool maintained by x

Description
Connection pooling for illuminate/database
Last update
2023/02/01 23:22 (dev-dependabot/composer/symfony/http-kernel-5.4.20)
Downloads
5

Comments
comments powered by Disqus

Laravel Connection Pool

Build Status

Laravel Connection Pool allows you to take advantage of Laravel's query builder and Eloquent ORM in an asynchronous environment. Perform concurrent database operations through a familiar fluent interface without having to worry about locking contention, let alone what connection you are using.

Note: This package is a work in progress and is unsafe for use in production.

Requirements

  • PHP 7.4+ (CLI only)
  • Swoole PHP extension

Installation

composer require x/laravel-connection-pool

Usage

// concurrent operations
go(fn () => Server::where('terminated_at', '<=', now()->subMinutes(5))->delete());

go(function () {
    Session::where('active', true)->get()->each(function ($session) {
        //
    });
});

Swoole\Event::wait();
// run 100 SLEEP(1) queries at once, takes ~1s
for ($i = 0; $i < 100; $i++) {
    go(fn () => DB::statement('SELECT SLEEP(1)'));
}

Swoole\Event::wait();