PHP code example of modelslab / octane-coroutine
1. Go to this page and download the library: Download modelslab/octane-coroutine library . Choose the download type require .
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
modelslab / octane-coroutine example snippets
'swoole' => [
'options' => [
'enable_coroutine' => true, // Already enabled by default
'worker_num' => 32,
'max_request' => 10000,
'max_request_grace' => 1000,
],
],
'swoole' => [
'options' => [
'worker_num' => 8,
],
'pool' => [
'db_max_connections_buffer' => env('OCTANE_POOL_DB_MAX_CONNECTIONS_BUFFER', 10),
],
],
// config/octane.php
'swoole' => [
'tick' => true, // Enable tick timers
],
// src/Swoole/Handlers/OnWorkerStart.php
\Swoole\Runtime::enableCoroutine(SWOOLE_HOOK_ALL);
// config/octane.php
'swoole' => [
'options' => [
'worker_num' => 64,
'backlog' => 65536,
'socket_buffer_size' => 2097152,
],
],
// Check worker initialization
tail -f storage/logs/swoole_http.log
// Monitor in real-time
php artisan octane:start --server=swoole --workers=32 | grep "Worker"
// config/octane.php
'swoole' => [
'options' => [
'worker_num' => 8, // Match CPU cores
'max_request' => 10000, // Restart worker after N requests (memory safety)
'max_request_grace' => 1000, // Grace period for graceful restart
'backlog' => 8192, // Connection queue size
'socket_buffer_size' => 2097152, // 2MB socket buffer
'buffer_output_size' => 2097152, // 2MB output buffer
],
],
// config/database.php
'mysql' => [
'driver' => 'mysql',
// ... other config
'pool' => [
'min_connections' => 1,
'max_connections' => 50,
'connect_timeout' => 10.0,
'wait_timeout' => 3.0,
],
],
bash
php artisan octane:install swoole
bash
# Update to the latest version
composer update modelslab/octane-coroutine
# Clear caches after updating
php artisan config:clear
php artisan cache:clear
php artisan octane:reload
bash
# Development (auto-detect CPU cores)
php artisan octane:start --server=swoole
# Production (explicit worker count)
php artisan octane:start --server=swoole --workers=32
bash
# Good: Only 1-2 task workers for tick
php artisan octane:start --task-workers=1
# Bad: Creates CPU_COUNT task workers (excessive overhead)
php artisan octane:start --task-workers=auto
bash
php artisan octane:start \
--server=swoole \
--workers=8 \
--task-workers=0 \
--max-requests=10000 \
--port=8000