laravel-connection-pool
laravel-connection-pool copied to clipboard
PHP connection pooling integration for Laravel's query builder and Eloquent
Laravel Connection Pool
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();