Maison >développement back-end >tutoriel php >Framework-AGNOSTIC PHP CRONJOBS Rendu facile avec Crunz!

Framework-AGNOSTIC PHP CRONJOBS Rendu facile avec Crunz!

William Shakespeare
William Shakespeareoriginal
2025-02-10 13:54:12161parcourir

Cet article présente Crunz, une bibliothèque de planification de travail PHP polyvalente. Inspiré par le planificateur de tâches de Laravel, Crunz offre une flexibilité accrue et une facilité d'utilisation pour gérer les travaux Cron. L'auteur accueille les contributions et les commentaires.

Framework-Agnostic PHP Cronjobs Made Easy with Crunz!

Une solide compréhension des travaux de cron est supposée. Reportez-vous à la procédure fournie si nécessaire.

Caractéristiques de clé:

  • Framework-AGNOSTIC: Fonctionne parfaitement avec n'importe quel cadre PHP.
  • Installation simple: utilise le compositeur pour une configuration facile.
  • Planification flexible: prend en charge diverses fréquences (par exemple, daily(), everyFiveMinutes()).
  • Contrôle précis: propose des méthodes comme from(), to(), between(), when(), et skip() pour gérer l'exécution des tâches.
  • Traitement parallèle: exécute les tâches simultanément pour l'efficacité.
  • Verrouillage robuste: empêche les tâches qui se chevauchent pour maintenir l'intégrité des données.
  • Configuration personnalisable: utilise un fichier YAML pour les paramètres flexibles.
  • Doguement complet: journaux de sortie et erreurs, avec des options de notification par e-mail.

PRENDRE:

Installer via Composer:

<code class="language-bash">composer require lavary/crunz</code>

A crunz L'utilitaire de ligne de commande sera disponible.

comment cela fonctionne:

Définissez les travaux CRON dans des fichiers PHP (par exemple, dans un répertoire tasks/) à l'aide de l'interface Crunz, au lieu de directement dans un fichier crontab. Un seul travail CRON (exécutant chaque minute) délève l'exécution au coureur d'événement de Crunz:

<code class="language-bash">* * * * * /project/vendor/bin/crunz schedule:run</code>

schedule:run gère l'exécution de la tâche basée sur les horaires définis.

Création de fichiers de tâche:

Les fichiers de tâche (se terminant conventionnellement dans Tasks.php) contiennent des définitions de tâches. Crunz scanne le répertoire tasks/ récursivement. Vous pouvez spécifier le répertoire des tâches via des arguments de configuration ou de ligne de commande.

Exemple de tâche:

<code class="language-php"><?php // tasks/MyTasks.php

use Crunz\Schedule;

$schedule = new Schedule();
$schedule->run('my_command')
         ->daily()
         ->description('My daily task.');

return $schedule;</code>

N'oubliez pas de renvoyer l'objet $schedule.

Commandes et fermetures:

run() Accepte les commandes ou les fermetures PHP:

<code class="language-php">$schedule->run('/usr/bin/my_script.sh', ['--option' => 'value'])
         ->hourly();

$schedule->run(function () { /* code */ })
         ->everyTenMinutes();</code>

Modifications du répertoire: Utilisez in() pour modifier le répertoire de travail avant l'exécution de la tâche.

Options de planification:

  • Unités de temps: hourly(), daily(), weekly(), monthly(), quarterly(), yearly().
  • Méthodes dynamiques: everyFiveMinutes(), everyTwelveHours(), etc.
  • fois spécifiques: on('14:00 2025-03-15'), at('14:00'), dailyAt('14:00').
  • en semaine: mondays(), tuesdays(), etc. (utilisez avec d'autres méthodes de fréquence).
  • Champs individuels: Contrôle précis sur les minutes, les heures, le jour, le mois et le jour de la semaine à l'aide de tableaux ou de listes séparées par des virgules.
  • Expression cron: cron('30 12 * * 1').

Durée de vie de la tâche: from(), to(), between() Période d'exécution de la tâche de contrôle.

Exécution conditionnelle: when() et skip() Les méthodes permettent l'exécution de la tâche conditionnelle basée sur les rappels.

Configuration (YAML): A crunz.yaml Le fichier (publié à l'aide de crunz publish:config) permet la personnalisation du répertoire source, du suffixe de fichiers, de la journalisation et des notifications par e-mail.

Parallélisme et verrouillage: Crunz exécute des tâches en parallèle en utilisant symfony/Process. preventOverlapping() empêche les courses qui se chevauchent.

Gestion des sorties et des erreurs: Log Sortie et erreurs dans les fichiers (configurer dans crunz.yaml) ou envoyer par e-mail. onError() Les rappels gèrent les erreurs.

Hooks pré / post-processus: before() et after() Les rappels permettent l'exécution du code avant et après les tâches.

Utilitaires de ligne de commande: crunz schedule:list répertorie les tâches; crunz make:task crée des squelettes de fichiers de tâche.

Interface Web: Envisagez d'utiliser lavary/crunz-ui (une interface basée sur Laravel) pour une solution de gestion basée sur le Web.

Conclusion:

Gérer les travaux CRON dans votre base de code offre un contrôle de version et une collaboration plus facile. Crunz simplifie considérablement ce processus.

Questions fréquemment posées (FAQ): (Les FAQ d'origine sont déjà bien écrites et ne nécessitent pas de modification significative pour cette réécriture.)

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Article précédent:Scrum Rituals: Sprint PlanningArticle suivant:Scrum Rituals: Sprint Planning