Task Queue

The Task Queue file provides a queue management system to handle asynchronous jobs. It uses Redis to store jobs in the queue and supports retries when a job fails. Below is a detailed explanation of each function:

push()

public static function push($queueName, $eventName, $payload = null, $attempts = 0) {}
  • Functionality: Pushes a job into the queue.

  • Parameters:

    • $queueName: The name of the queue (e.g., 'email', 'notifications').

    • $eventName: The name of the event to be triggered when the job is processed (e.g., 'SendEmailEvent').

    • $payload: Data associated with the job (e.g., email information to be sent).

    • $attempts: The number of retry attempts (default is 0).

Example:

<?php
TaskQueue::push(
    'email', 
    'SendEmailEvent', 
    ['to' => '[email protected]', 'subject' => 'Welcome'], 
    0
);

// Result: The job is added to the task_queue:email queue.

pop()

  • Functionality: Retrieves a job from the queue (uses blocking pop if available).

  • Parameters:

    • $queueName: The name of the queue.

    • $timeout: Timeout duration (in seconds) if the queue is empty.

Example:

del()

Completely clears all session data, effectively logging out the user and resetting the session

Example:

processJob()

  • Functionality: Processes a job from the queue.

  • Parameters:

    • $queueName: The name of the queue.

    • $maxRetries: The maximum number of retry attempts (default is 3).

Example:

pushFailed()

  • Functionality: Pushes a failed job into the failed queue.

  • Parameters:

    • $queueName: The name of the original queue.

    • $job: The job as an array.

Example:

runWorker()

  • Functionality: Runs a worker to continuously retrieve and process jobs from the queue.

  • Parameters:

    • $queueName: The name of the queue.

    • $maxRetries: The maximum number of retry attempts.

    • $timeout: Timeout duration (in seconds) for blocking pop.

Example:

Example

circle-check

Last updated

Was this helpful?