PHP code example of adamczykpiotr / laravel-balanced-queues

1. Go to this page and download the library: Download adamczykpiotr/laravel-balanced-queues 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/ */

    

adamczykpiotr / laravel-balanced-queues example snippets


use AdamczykPiotr\LaravelBalancedQueues\Traits\HasBalancedQueues;

class ScrapeVideosJob implements ShouldQueue
{
    public function __construct() {
        $this->onHighNetworkBandwidthUsageQueu();
    }
}

class CallApiJob implements ShouldQueue
{
    public function __construct() {
        $this->onHighNetworkRequestUsageQueue();
    }
}

class ProcessBigDataJob implements ShouldQueue
{
    public function __construct() {
        $this->onHighCpuUsageQueue();
    }
}

class ProcessSmallerDataJob implements ShouldQueue
{
    public function __construct() {
        $this->onMediumCpuUsageQueue();
    }
}

use AdamczykPiotr\LaravelBalancedQueues\Enums\JobWorkloadType;

$CPU_CORES = CpuCoreConfigurationResolver::CPU_CORES;

return [
    'queues' => [
        JobWorkloadType::DEFAULT->value => 1,

        JobWorkloadType::CPU_HIGH->value => $CPU_CORES,
        JobWorkloadType::CPU_MEDIUM->value => 2 * $CPU_CORES,
        JobWorkloadType::CPU_LOW->value => 4 * $CPU_CORES,

        JobWorkloadType::NETWORK_HIGH_BANDWIDTH->value => 5,
        JobWorkloadType::NETWORK_HIGH_REQUESTS->value => 50,

        JobWorkloadType::FILESYSTEM->value => 2,
    ],
];

'queues' => [
    'ml-training' => 2 * $CPU_CORES,
    'notifications' => 10,
    'web-scraping' => 25,
],

'package' => [
    'cpu_core_count' => 4,  // Override auto-detected core count
],

'worker_options' => [
    '--timeout' => 60,
    '--tries' => 3,
    '--sleep' => 3,
],

'supervisor' => [
    'header' => [
        'user' => 'www-data',
        'numprocs' => 1,
    ],
],
bash
php artisan queue:run-balanced