anaseqal/laravel-asynq

Laravel integration for Asynq task queue

v1.1.1 2025-03-28 20:29 UTC

This package is not auto-updated.

Last update: 2025-05-23 21:11:56 UTC


README

Laravel integration for Asynq task queue system.

Installation

composer require anaseqal/laravel-asynq

Publish configuration:

php artisan vendor:publish --provider="AnasEqal\LaravelAsynq\AsynqServiceProvider"

Configuration

Add to your Laravel project's config/database.php under redis connections:

'asynq' => [
    'host' => env('ASYNQ_REDIS_HOST', '127.0.0.1'),
    'password' => env('ASYNQ_REDIS_PASSWORD', null),
    'port' => env('ASYNQ_REDIS_PORT', 6379),
    'database' => env('ASYNQ_REDIS_DB', 0),
],

Add to your .env:

ASYNQ_REDIS_HOST=127.0.0.1
ASYNQ_REDIS_PORT=6379
ASYNQ_REDIS_DB=0
ASYNQ_DEFAULT_QUEUE=default

Usage

Basic Usage

use AnasEqal\LaravelAsynq\Facades\Asynq;

// Simple task
$taskId = Asynq::enqueueTask(
    'email:send',
    ['to' => 'user@example.com']
);

// With options
$taskId = Asynq::enqueueTask(
    'report:generate',
    ['reportId' => 123],
    'reports',
    [
        'delay' => 300,
        'retry' => 5,
        'timeout' => 1800
    ]
);

Available Options

  • delay: Seconds to wait before processing
  • retry: Maximum retry attempts
  • timeout: Task timeout in seconds
  • retention: Data retention period
  • uniqueKey: Unique task identifier
  • groupKey: Task group identifier
  • deadline: Task deadline offset