PHPackages                             andydefer/laravel-task - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. andydefer/laravel-task

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

andydefer/laravel-task
======================

A lightweight, file-based task system for Laravel with async execution, recurring tasks, and JSONL storage

1.4.0(2w ago)013MITPHPPHP &gt;=8.1

Since May 25Pushed 6d agoCompare

[ Source](https://github.com/andydefer/laravel-task)[ Packagist](https://packagist.org/packages/andydefer/laravel-task)[ RSS](/packages/andydefer-laravel-task/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (7)Versions (6)Used By (0)

**A lightweight, file-based task system for Laravel with async execution, recurring tasks, and JSON storage.**

[![PHP Version](https://camo.githubusercontent.com/83dd395020c37276225039739320f6c8e7e99963ab21ee3d09282cb48dad2a60/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f5048502d382e312532422d626c7565)](https://php.net)[![Laravel Version](https://camo.githubusercontent.com/ba69236eb9bfe25effcb7eb44086de41847364b41b47c2e3f6c3975cd2653974/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c61726176656c2d31322e7825323025374325323031332e7825323025374325323031342e7825323025374325323031352e782d626c7565)](https://laravel.com)[![License](https://camo.githubusercontent.com/5caa455d8debc46fb23abbadb45a733a937f3910a73fc875c2f7820468e1bb54/68747470733a2f2f696d672e736869656c64732e696f2f62616467652f4c6963656e73652d4d49542d677265656e)](LICENSE)

---

Introduction
------------

[](#introduction)

### Le problème

[](#le-problème)

Laravel propose des solutions pour les tâches asynchrones :

- **Queues** : Nécessitent Redis/Beanstalkd/Database, configuration lourde
- **Task Scheduling** : Exécution via cron, pas de gestion des échecs intégrée
- **Jobs** : Lourds, difficilement testables unitairement

### La solution : Laravel Task

[](#la-solution--laravel-task)

**Laravel Task** est un système de tâches asynchrones et récurrentes basé sur des fichiers JSON.

ProblèmeSolution Laravel TaskDépendance à Redis/BeanstalkdStockage JSON - pas de base de donnéesConfiguration complexeZéro configuration, prêt à l'emploiTests difficilesTestable unitairement (pas de queue mock)Pas de récurrence native`delaySeconds` pour les tâches récurrentesPas de gestion des échecsRetry automatique avec `maxAttempts`Logs non structurésLogging via `laravel-logger`---

Installation
------------

[](#installation)

```
composer require andydefer/laravel-task
```

Le package s'enregistre automatiquement via Laravel.

### Publication de la configuration (optionnel)

[](#publication-de-la-configuration-optionnel)

```
php artisan vendor:publish --tag=task-config
```

---

Configuration
-------------

[](#configuration)

```
// config/task.php
return [
    // Chemin de stockage des tâches
    'storage_path' => env('TASK_STORAGE_PATH', storage_path('tasks')),

    // Période de grâce
    'grace_period' => [
        'enabled' => env('TASK_GRACE_PERIOD_ENABLED', true),
        'seconds' => env('TASK_GRACE_PERIOD_SECONDS', 86400), // 24 heures
    ],

    // Traitement par lots
    'batch' => [
        'limit' => env('TASK_BATCH_LIMIT', 1000),   // null ou 0 = illimité
        'order' => env('TASK_BATCH_ORDER', 'oldest'), // 'oldest' ou 'newest'
    ],
];
```

### Variables d'environnement

[](#variables-denvironnement)

```
TASK_STORAGE_PATH=/custom/tasks/path
TASK_GRACE_PERIOD_ENABLED=true
TASK_GRACE_PERIOD_SECONDS=86400
TASK_BATCH_LIMIT=500
TASK_BATCH_ORDER=newest
```

---

Créer votre première tâche
--------------------------

[](#créer-votre-première-tâche)

### 1. Créer la classe de la tâche

[](#1-créer-la-classe-de-la-tâche)

```
