Download the PHP package andydefer/laravel-task without Composer
On this page you can find all versions of the php package andydefer/laravel-task. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download andydefer/laravel-task
More information about andydefer/laravel-task
Files in andydefer/laravel-task
Package laravel-task
Short Description A lightweight, file-based task system for Laravel with async execution, recurring tasks, and JSONL storage
License MIT
Informations about the package laravel-task
Laravel Task
Un moteur de tâches persistantes pour Laravel. Planification dynamique, exécution récurrente, état, retry, pause, reprise - avec un simple cron.
Table des matières
- Installation
- Pourquoi Laravel Task ?
- Architecture et concepts clés
- Créer une tâche unique
- Créer une tâche récurrente
- Le noyau de directives (DirectiveKernel)
- Exécuter les tâches
- Surveillance continue
- Exécution parallèle
- Gestion des tâches
- Mode test et fixtures
- Cas d'usage concrets
- Intégration avec les cron jobs
- Bonnes pratiques
- Référence des commandes
Installation
Prérequis : PHP 8.2+ | Laravel 12.x, 13.x, 14.x ou 15.x
Pourquoi Laravel Task ?
Le problème : Vous devez envoyer un email 30 minutes après chaque inscription. Avec Laravel Queue, il vous faut un worker permanent, Supervisor, et généralement un VPS. Sur un hébergement mutualisé, c'est impossible.
La solution : Laravel Task. Des tâches persistantes avec un cycle de vie complet, qui fonctionnent avec un simple cron.
Comparatif rapide
| Besoin | Scheduler | Queue | Laravel Task |
|---|---|---|---|
| Tâche "dans 5 minutes" | ❌ | ✅ | ✅ |
| Tâche récurrente avec date de fin | ❌ | ❌ | ✅ |
| Pause / Reprise | ❌ | ❌ | ✅ |
| Retry automatique | ❌ | ✅ | ✅ |
| État et historique | ❌ | ❌ | ✅ |
| Exécution parallèle | ❌ | ✅ | ✅ |
| Fonctionne sur hébergement SHARED | ✅ | ❌ | ✅ |
Architecture et concepts clés
Le noyau (DirectiveKernel)
Le package repose sur un noyau de directives (DirectiveKernel) qui orchestre toute l'exécution. Il agit comme un micro-framework de commandes intégré à Laravel.
Fonctionnalités clés :
- ✅ Découverte automatique des directives
- ✅ Indexation BK-Tree pour les suggestions de commandes
- ✅ Contexte partagé entre les directives
- ✅ Journalisation des exécutions en JSONL
- ✅ Mode verbose pour le débogage
- ✅ Détection de circularité
Les directives
Le package fournit trois directives principales :
| Directive | Description | Utilisation |
|---|---|---|
tasks:process |
Exécution unique en lot | ./bin/task tasks:process |
tasks:watch |
Surveillance continue | ./bin/task tasks:watch |
fixture:register-tasks |
Création de tâches de test | ./bin/task fixture:register-tasks |
Les services de tâches
Le package expose deux services principaux qui utilisent des records pour la configuration :
Créer une tâche unique
1. Créer la classe
2. Enregistrer la tâche via le service
Créer une tâche récurrente
1. Créer la classe
2. Enregistrer la tâche
Le noyau de directives (DirectiveKernel)
Le DirectiveKernel est le cœur de l'exécution. Il permet de :
1. Exécuter une directive programmatiquement
2. Utiliser le contexte partagé
Exécuter les tâches
Une seule fois (tasks:process)
Surveillance continue (tasks:watch)
La directive tasks:watch exécute tasks:process en boucle avec un intervalle configurable.
Arguments
| Argument | Description | Défaut |
|---|---|---|
interval |
Intervalle entre les cycles (minimum 2s) | 60 |
duration |
Durée totale d'exécution en secondes | Illimité |
limit |
Nombre max de tâches par cycle | 100 |
parallel |
Nombre de workers parallèles | 1 |
Exécution parallèle
Le package supporte l'exécution parallèle des tâches via l'option --parallel.
Architecture
Gestion des tâches
États des tâches uniques
États des tâches récurrentes
API de gestion
Cas d'usage concrets
1. SaaS - Abonnements et facturation
2. E-commerce - Paniers abandonnés
3. Intégrations API - Webhooks avec retry
4. Maintenance - Nettoyage et backups
5. Workflow - Orchestration en plusieurs étapes
6. Campaigns marketing - Newsletters temporaires
Intégration avec les cron jobs
Configuration de base
Bonnes pratiques
✅ Injection de services
✅ Utiliser des Value Objects pour les dates
✅ Structure des payloads avec StrictDataObject
✅ Utiliser des limites
Référence des commandes
| Commande | Description |
|---|---|
./bin/task tasks:process |
Traite toutes les tâches en un lot |
./bin/task tasks:process 50 |
Limite à 50 tâches |
./bin/task tasks:process --unique-only |
Uniquement les uniques |
./bin/task tasks:process --recurring-only |
Uniquement les récurrentes |
./bin/task tasks:process --verbose |
Affiche les erreurs |
./bin/task tasks:process --mute |
Mode silencieux |
./bin/task tasks:watch |
Surveillance continue (60s) |
./bin/task tasks:watch 30 |
Toutes les 30s |
./bin/task tasks:watch 30 3600 |
Pendant 1 heure |
./bin/task tasks:watch 10 300 50 4 |
4 workers parallèles |
./bin/task fixture:register-tasks |
Créer 1 tâche de chaque type |
./bin/task fixture:register-tasks 10 5 |
Créer 10 uniques + 5 récurrentes |
Codes de sortie
| Code | Signification |
|---|---|
0 |
SUCCESS |
1 |
FAILURE |
2 |
INVALID_ARGUMENT |
3 |
RUNTIME_ERROR |
Licence
MIT © Andy Defer
All versions of laravel-task with dependencies
laravel/framework Version ^12.0|^13.0|^14.0|^15.0
ramsey/uuid Version ^4.7
andydefer/laravel-logger Version ^3.9.16
andydefer/laravel-repository Version ^2.14.18
andydefer/laravel-directive Version ^3.63.3