2017 © Pedro Peláez
 

symfony-bundle symfony-schedule-bundle

Schedule Bundle for Symfony

image

m-adamski/symfony-schedule-bundle

Schedule Bundle for Symfony

  • Friday, June 8, 2018
  • by m-adamski
  • Repository
  • 0 Watchers
  • 0 Stars
  • 20 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

Schedule Bundle for Symfony

Bundle for simplifying operations with CRON jobs., (*1)

Version 2.x is no longer compatible with Symfony version 4.x. In this case, use version 1.x, (*2)

Installation

This Bundle can be installed by Composer:, (*3)

$ composer require m-adamski/symfony-schedule-bundle

How to use it?

Bundle provide functionality to manage CRON jobs by configuration from specified file. We need to create class implementing Adamski\Symfony\ScheduleBundle\Model\ManagerInterface interface., (*4)

```(php) namespace App\Model;, (*5)

use Adamski\Symfony\ScheduleBundle\Model\ManagerInterface; use Adamski\Symfony\ScheduleBundle\Model\Schedule;, (*6)

class ScheduleManager implements ManagerInterface {, (*7)

public function schedule(Schedule $schedule) {
    // TODO: ..
}

}, (*8)


Then we need to complete the configuration - create file ``config/packages/schedule.yaml`` and set path to ScheduleManager: ```(yaml) schedule: manager: App\Model\ScheduleManager

Command schedule configuration

In function schedule we can configure CRON jobs with required expressions. For example we want run app:test-command daily at 12:00:, (*9)

```(php) public function schedule(Schedule $schedule) { $schedule->command("app:test-command")->dailyAt("12:00"); }, (*10)


Schedule class provide many date-time manipulators. This functionality is inspired by Laravel Tasks Scheduling. ## Schedule Frequency Options There are many schedules that you can assign to your task. | Method | | ---------------------------------------------- | | cron($expression) | | everyMinute() | | everyFiveMinutes() | | cron($expression) | | everyMinute() | | everyFiveMinutes() | | everyTenMinutes() | | everyFifteenMinutes() | | everyThirtyMinutes() | | hourly() | | hourlyAt(int $offset) | | daily() | | at(string $time) | | dailyAt(string $time) | | twiceDaily(int $first = 1, int $second = 13) | | weekdays() | | weekends() | | mondays() | | tuesdays() | | wednesdays() | | thursdays() | | fridays() | | saturdays() | | sundays() | | weekly() | | weeklyOn(int $day, string $time = "0:0") | | monthly() | | monthlyOn(int $day = 1, string $time = "0:0") | | twiceMonthly(int $first = 1, int $second = 16) | | quarterly() | | yearly() | | days($days) | ## CRON Now it's enough to insert only one entry into crontab on server:
          • php /path-to-project/bin/console schedule:run >> schedule.log 2>&1 ```

License

MIT, (*11)

The Versions

08/06 2018

dev-master

9999999-dev

Schedule Bundle for Symfony

  Sources   Download

MIT

The Requires

 

by Maciej Adamski

08/06 2018

1.1.0

1.1.0.0

Schedule Bundle for Symfony

  Sources   Download

MIT

The Requires

 

by Maciej Adamski

13/02 2018

1.0.0

1.0.0.0

Schedule Bundle for Symfony

  Sources   Download

MIT

The Requires

 

by Maciej Adamski