A supervisor client package for Flow applications

Installs: 4 547

Dependents: 0

Suggesters: 0

Security: 0

Stars: 4

Watchers: 4

Forks: 1

Open Issues: 0


1.0.0 2017-01-20 11:01 UTC

This package is auto-updated.

Last update: 2024-03-18 01:25:36 UTC


With this Flow package you can control and monitor your supervisor daemon and all configured processes from your Flow application. You can use it to control workers that compute job queue tickets in a complex MessageQueue scenario.

Yeebase.Supervisor is an excellent addition to Flow's Flowpack.JobQueue.Common package and some MessageQueue backend like Flowpack.JobQueue.Beanstalkd:

You would like to defer jobs in a message queue and do things asynchronous within your Flow application?

An example MessageQueue stack with Flow:

  1. Supervisor Daemon - monitors and controls your job queue workers (they are doing the hard work)
  2. Beanstalkd Message Queue- manages what jobs to give to the workers (stupid, fast)
  3. Flowpack.JobQueue.Common - Flow package for putting jobs/functions into an asyncronous pipeline (using a simple @Job\Defer annotation)
  4. Flowpack.JobQueue.Beanstalkd - The job queue implementation for Beanstalkd backends
  5. Yeebase.Supervisor client package - monitor and control all configured supervisor processes

Installation & configuration

Just add "yeebase/supervisor" as dependency to your composer.json and run a "composer update" in your root folder. You will also have to install the xml-rpc php extension (would be nice to remove this dependency in some future versions).

Configure the supervisor connection in your Settings.yaml:

    host: 'unix:///var/run/supervisor.sock'
    port: -1
    timeout: 30

Command line tool

The Yeebase.Supervisor package comes with a simple Flow command controller:

  1. Test the connection to supervisor and get some details
./flow supervisor:status

This should output something like this:

Successfully connected to supervisor service:
Address: unix:///var/run/supervisor.sock:-1
Identification: supervisor
Version: 3.0 
Api-Version: 3.0
  1. Show all configured processes and their details
./flow supervisor:processes status all

Just type ./flow help supervisor to get an overview of all available commands or ./flow help supervisor:processes (f.e.) on how to use a specific command.

Using the SupervisorService in your own classes

The main part of the Yeebase.Supervisor package is a the supervisor client class named "SupervisorService". In Flow you can just inject this class to your custom controllers via the following php code:

use Yeebase\Supervisor\Service\SupervisorService;

 * My funky class that shows details about configured supervisor processes
class MyFunkyController extends AbstractBaseController {

	 * @Flow\Inject
	 * @var SupervisorService
	protected $supervisorService;

If the SupervisorService has been injected you can use it in your class without initializing it manually - something like this:

  function showVersionAction() {
    $this->view->assign('version', $this->supervisorService->getVersion();