Skip to content

carlespibernat/scheduled-command-bundle

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Command Scheduler Symfony bundle

This bundle lets you schedule commands using the unix at command.

Installation

Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:

composer require carles/scheduled-command-bundle

This command requires you to have Composer installed globally, as explained in the installation chapter of the Composer documentation.

Usage

To schedule a command simply configure a ScheduledCommand and persist it:

use CommandSchedulerBundle\Entity\ScheduledCommand;

$scheduledCommand = new ScheduledCommand();

$scheduledCommand->setCommand("echo 'Happy New Year'");
$scheduledCommand->setDatetime(new \DateTime('01-01-2020 00:00:00'));

$this->getDoctrine()->getManager()->persist($scheduledCommand);
$this->getDoctrine()->getManager()->flush();

The bundle uses doctrine events to create an at job with the configured command. The command will be stored in a file under the configured directory.
The default directory is /tmp, but feel free to change it in the configuration:

scheduled_command:
    temp_command_files_dir: /my/directory

At the moment this bundle is only working in unix environments where the at command is installed, but it would be nice to add Windows compatibility in the future.