Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/proklung/task.scheduler.bundle
Бандл для периодического запуска команд по Крону
https://github.com/proklung/task.scheduler.bundle
bitrix-symfony php7 symfony-bundle wordpress-symfony
Last synced: 17 days ago
JSON representation
Бандл для периодического запуска команд по Крону
- Host: GitHub
- URL: https://github.com/proklung/task.scheduler.bundle
- Owner: ProklUng
- Created: 2021-05-31T14:50:42.000Z (over 3 years ago)
- Default Branch: master
- Last Pushed: 2021-05-31T14:58:22.000Z (over 3 years ago)
- Last Synced: 2024-10-03T07:05:50.039Z (about 1 month ago)
- Topics: bitrix-symfony, php7, symfony-bundle, wordpress-symfony
- Language: PHP
- Homepage:
- Size: 18.6 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: readme.MD
Awesome Lists containing this project
README
# TaskSchedulerBundle
Форк [пакета](https://github.com/rewieer/TaskSchedulerBundle). Доработано под личные нужды.
## Установка
composer.json:
```json
"repositories": [
{
"type": "git",
"url": "https://github.com/proklung/task.scheduler.bundle"
}
]
``````bash
composer require proklung/task-scheduler-bundle
```
## Оригинальная документация
## Usage
First, add the following line to your *CRON* tabs : `* * * * * php /path/to/your/project/bin/console ts:run >> /dev/null 2>&1`
>This will call the scheduler, which will review all scheduled tasks and dispatch accordingly. You can call a task directly by providing it's **ID** as a parameter to the command. Note that this **ID** is generated by the scheduler and is in no way related to the service itself.>The `>> /dev/null 2>&1` option discards the printed results of the tasks. Removing it allows to send it by email instead. This may vary so please refer to your server's configuration.
You then need to create a task. Tasks can be any service! You just have to give it the `ts.task` tag and implement `TaskInterface`, or for simplicity extend from `AbstractScheduledTask`.
### Every X Minutes
In `Foo\Bar\Task` to schedule a task **every 5 minutes**:
```php
use Prokl\TaskSchedulerBundle\Task\AbstractScheduledTask;
use Prokl\TaskSchedulerBundle\Task\Schedule;class Task extends AbstractScheduledTask {
protected function initialize(Schedule $schedule) {
$schedule
->everyMinutes(5); // Perform the task every 5 minutes
}public function run() {
// Do stuff
}
}
```Your task is now scheduled and will be called every 5 minutes.
### Every X Hours or Daily
if you are scheduling your task on an hourly or daily basis, you'll need to set `minutes()` in addition to `hours()`, `everyHours()`, or `daily()`. **If you omit `minutes()`, the task will run every minute on the scheduled hour(s).**
In `Foo\Bar\Task` to schedule a task **every 5 hours**:
```php
use Prokl\TaskSchedulerBundle\Task\AbstractScheduledTask;
use Prokl\TaskSchedulerBundle\Task\Schedule;class Task extends AbstractScheduledTask {
protected function initialize(Schedule $schedule) {
$schedule
->minutes(0)
->everyHours(5); // Perform the task every 5 hours on minute 0
// Or if you want to perform your task at midnight every day
// $schedule->minutes(0)->hours(0)->daily();
// Or schedule your task to run once at 9AM daily (this is effectively the same as daily() above)
// $schedule->minutes(0)->hours(9);
}public function run() {
// Do stuff
}
}
```