ii02735/cron-scheduler

cron-scheduler : permet de créer ses tâches CRON en PHP depuis un CLI

dev-master 2019-07-25 13:52 UTC

This package is auto-updated.

Last update: 2024-03-26 00:17:10 UTC


README

That dependency allows you to define your cron tasks for bash instructions from a PHP CLI (made with symfony/console)

Warning : you must create a cron task that will run every minutes from Linux crontab

* * * * * php <PHP project path>/vendor/ii02735/cron.php

Installation

Add the depedency to your project :

composer require ii02735/cron-scheduler

Configuration

You must create the environment .cron-scheduler-env file somewhere in your project folder with the following environment variables in order to fill database's crendentials for Doctrine :

  • DB_DRIVER with your database driver
  • DB_NAME with your database's name
  • DB_HOST with your database's DSN
  • DB_USER with the database's user
  • DB_PASSWORD with the user's password

Important

  • Don't forget to also add the Entity's path in your Doctrine configuration in order to update your Database after with Doctrine's CLI.
  • Don't also forget to provide your YAML file with your bash commands in CRON_BASE_FILE variable (refer to syntax below)
  • You can specify the language interface in the CRON_SCHEDULER_LANG variable ("en" for English by default, "fr" for French).
  • You must be at the environment file's path in order to be able to use the package's dependency

Usage

Three commands are available :

  • To add a task :
php ./vendor/ii02735/console cron:scheduler:add

It will look the list of bash commands in the file that you provided its path in CRON_BASE_FILE variable. If you want to add more, please respect the syntax below :

<task identifier>: ...
  cmd: <bash command>
  schedule: <cron expression>
  disable:  true  #(optional if you want to disable your task after its addition)
  • To list the created tasks :
php ./vendor/ii02735/console cron:scheduler:list
  • Options :
    • -f, --filter=FILTER Sort tasks from their status (on|off)
    • -d, --del=DEL Delete a task
    • -t, --toggle=TOGGLE Enable/disable a task
  • Load a YAML file as tasks to be loaded :
php ./vendor/ii02735/console cron:scheduler:load <YAML file path>

Thanks

Planificateur de tâches CRON

Cette dépendance vous permet de définir vos tâches CRON pour des instructions bash depuis une interface de commande en PHP.

Attention : Il vous est nécessaire de définir une tâche CRON qui s'exécutera toutes les minutes depuis Linux crontab

* * * * * php <chemin de votre projet PHP>/vendor/ii02735/cron.php

Installation

Ajouter la dépendance à votre projet :

composer require ii02735/cron-scheduler

Configuration

Vous devez créer le fichier d'environnement .cron-scheduler-env quelque part dans votre dossier de projet avec les variables d'environnement suivantes afin de donner accès à Doctrine à votre base de données :

  • DB_DRIVER avec le driver de votre base de données
  • DB_NAME avec le nom de votre base de données
  • DB_HOST avec le DSN de votre base de données
  • DB_USER avec l'utilisateur de la base de données
  • DB_PASSWORD avec le mot de passe de ce dernier

Important

  • N'oubliez pas de préciser le chemin de l'entité dans votre configuration de Doctrine afin de mettre à jour votre base de données avec le CLI de Doctrine
  • N'oubliez pas de préciser le chemin du fichier YAML avec vos commandes bash dans la variable CRON_BASE_FILE (vérifier la syntaxe ci-dessous)
  • Vous pouvez préciser la langue de l'interface dans la variable CRON_SCHEDULER_LANG ("en" pour l'anglais par défaut, "fr" pour le français).
  • Vous devez être au niveau du chemin du fichier d'environnement afin de pouvoir utiliser les commandes de la dépendance

Utilisation

Trois commandes sont disponibles pour l'utilisation de la dépendance :

  • Pour ajouter une tâche :
php ./vendor/ii02735/console cron:scheduler:add

La commande ira piocher la liste des instructions bash dans le fichier que vous avez précisé dans CRON_BASE_FILE Si vous souhaitez rajouter des instructions, veuillez respecter la syntaxe du fichier yml :

<id de la tâche>: ...
  cmd: <commande bash>
  schedule: <expression cron>
  disable:  true  #(optionnel si vous désactiver la commande lors de son ajout en tâche CRON)
  • Pour lister les tâches :
php ./vendor/ii02735/console cron:scheduler:list
  • Options :

    • -f, --filter=FILTER Trie les tâches selon leur état (on|off)
    • -d, --del=DEL Supprimer une tâche
    • -t, --toggle=TOGGLE Activer/désactiver une tâche
  • Pour charger un fichier contenant des instructions bash :

php ./vendor/ii02735/console cron:scheduler:load <chemin du fichier YAML>

Remerciements