2017 © Pedro Peláez
 

symfony-bundle background-task-bundle

Symfony BackgroundTaskBundle

image

text-media/background-task-bundle

Symfony BackgroundTaskBundle

  • Tuesday, March 20, 2018
  • by text-media
  • Repository
  • 0 Watchers
  • 0 Stars
  • 196 Installations
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 28 % Grown

The README.md

Background Task Bundle

Packagist Packagist, (*1)

Модуль Symfony для фоновых задач, (*2)

Установка

Модуль устанавливается через добавление зависимости в composer, (*3)

composer require text-media/background-task-bundle

В конфиге doctrine необходимо описать Entry Manager с именем background_task и отдельным подключением, (*4)

Активировать модуль в Kernel::registerBundles, (*5)

Выполнить миграцию автоматически или вручную, (*6)

php ./bin/console doctrine:schema:update --em=background_task --dump-sql

Использование

В контейнере должен быть зарегистрирован хотя бы один сервис реализующий интерфейс ProviderInterface, (*7)

<?php

namespace MyBundle;

use TextMedia\BackgroundTaskBundle\ProviderInterface;

class MyService implements ProviderInterface
{
    /**
     * Получить список обработчиков по именам задач.
     *
     * @return callable[]
     */
    public function getBackgroundCallbacks(): array
    {
        return [
            'task:trim' => 'trim',
            'task:pow' => 'pow'
        ];
    }
}

services:
    my_service:
        class: MyBundle\MyService
        tags:
            - { name: "background_task.provider", alias: "my_service"}

Создать фоновую задачу можно с помощью метода TaskManagerInterface::addTask, (*8)

/** @var \TextMedia\BackgroundTaskBundle\TaskManagerInterface $taskManager */
$taskManager = $container->get('background_task.manager');
$taskManager->addTask(1, 'task:pow', [2,3]);

Выполнение фоновых задач осуществляется с помощью команды, (*9)

php ./bin/console background:task:run

Онформация о параметрах команды, (*10)

php ./bin/console background:task:run -h

Если коллбек выбрасывает исключение DeferredException задача будет отложена, (*11)

The Versions