2017 © Pedro Peláez
 

library daemon-bundle

Symfony2 Daemon Bundle

image

uecode/daemon-bundle

Symfony2 Daemon Bundle

  • Tuesday, October 7, 2014
  • by aequasi
  • Repository
  • 5 Watchers
  • 15 Stars
  • 5,525 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 10 Forks
  • 0 Open issues
  • 8 Versions
  • 0 % Grown

The README.md

Uecode DaemonBundle

DEPRECATED / NO LONGER SUPPORTING

Its now pretty easy to daemonize php commands using upstart, or init.d. Please use those instead of this, as you will get a lot more support., (*1)



























, (*2)

Overview

DaemonBundle is a wrapper for the PEAR library System_Daemon which was created by Kevin Vanzonneveld., (*3)

This will enable you to install the symfony bundle and easily convert your Symfony2 console scripts into system daemons., (*4)

pcntl is required to be configured in your PHP binary to use this. On my Ubuntu server I was able to install pcntl easily with the following command:, (*5)

sudo apt-get install php-5.3-pcntl-zend-server 

System_Daemon PEAR package

System_Daemon is a PHP class that allows developers to create their own daemon applications on Linux systems. The class is focussed entirely on creating & spawning standalone daemons, (*6)

More info at:, (*7)

DaemonBundle Config

THIS BUNDLE REQUIRES THE Uecode\Bundle\UecodeBundle (https://github.com/uecode/uecode-bundle), (*8)

Place Uecode\Bundle\Daemonbundle in your src directory and do the following:, (*9)

composer.json

"uecode/daemon-bundle": "dev-master",

appKernel.php

Add The DaemonBundle to your kernel bootstrap sequence, (*10)

public function registerBundles()
{
    $bundles = array(
        //...
        new Uecode\Bundle\DaemonBundle\DaemonBundle(),
    );
    //...

    return $bundles;
}

config.yml

By Default, system daemons have a sensible configuration. If you need to change any configuration setting , you could do it by adding this configuration to your project config. Only the values that need to be changed should be added, the bundle extension will merge your daemon configs into its defaults. YOU MUST HAVE AT LEAST THIS PIECE TO WORK, (*11)

app/config.yml

#Uecode DaemonBundle Config
uecode:
    daemon:

config.yml - Extras

app/config.yml

#UecodeDaemonBundle Configuration Example
uecode:
    daemon:
        daemons:
            #creates a daemon using default options
            example: ~

            #an example of all the available options
            explicitexample:
                appName: example
                appDir: %kernel.root_dir%
                appDescription: Example of how to configure the DaemonBundle
                logDir: %kernel.logs_dir%
                authorName: Aaron Scherer
                authorEmail: aequasi@gmail.com
                appPidDir: %kernel.cache_dir%/daemons/
                sysMaxExecutionTime: 0
                sysMaxInputTime: 0
                sysMemoryLimit: 1024M
                appUser: apache
                appGroup: apache
                appRunAsGID: 1000
                appRunAsUID: 1000

Creating a Daemon

Code

Make sure you extend \Uecode\Bundle\DaemonBundle\Command\ExtendCommand, (*12)

<?php
namespace Uecode\Bundle\DaemonBundle\Command;

use \Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use \Symfony\Component\Console\Input\InputInterface;
use \Symfony\Component\Console\Input\ArrayInput;
use \Symfony\Component\Console\Output\OutputInterface;
use \Symfony\Component\DependencyInjection\Container;

use \Uecode\Bundle\DaemonBundle\System\Daemon\Exception;
use \Uecode\Bundle\DaemonBundle\Service\DaemonService;

/**
 * Example Command class
 */
class ExampleCommand extends ExtendCommand
{
    /**
     * Configures the Command
     */
    protected function configure()
    {
        $this
            ->setName( 'example' )
            ->setDescription( 'Starts an example Daemon' )
            ->setHelp( 'Usage: <info>php app/console example start|stop|restart</info>' )
            ->addArgument( 'method', InputArgument::REQUIRED, 'start|stop|restart' );
    }

    /**
     * Sample Daemon Logic. Logs `Daemon is running!` every 5 seconds
     * @param \Symfony\Component\Console\Input\InputInterface   $input
     * @param \Symfony\Component\Console\Output\OutputInterface $output
     */
    protected function daemonLogic( InputInterface $input, OutputInterface $output )
    {
        // Do a little logging
        $this->container->get( 'logger' )->info( 'Daemon is running!' );
        // And then sleep for 5 seconds
        $this->daemon->iterate( 5 );
    }
}

Usage

Once you have Daemonized your symfony Console Commands, you can simply run them from the command line like so:, (*13)

aequasi@ue:~/example$ php app/console queue:start

aequasi@ue:~/example$ php app/console queue:stop

aequasi@ue:~/example$ php app/console queue:restart

Bitdeli Badge, (*14)

The Versions

07/10 2014

dev-master

9999999-dev https://github.com/uecode/daemon-bundle

Symfony2 Daemon Bundle

  Sources   Download

MIT

The Requires

 

The Development Requires

php daemon

05/08 2014

1.3.1

1.3.1.0 https://github.com/uecode/daemon-bundle

Symfony2 Daemon Bundle

  Sources   Download

MIT

The Requires

 

The Development Requires

php daemon

05/08 2014

2.0.1

2.0.1.0 https://github.com/uecode/daemon-bundle

Symfony2 Daemon Bundle

  Sources   Download

MIT

The Requires

 

The Development Requires

php daemon

08/01 2014

2.0.0

2.0.0.0 https://github.com/uecode/daemon-bundle

Symfony2 Daemon Bundle

  Sources   Download

MIT

The Requires

 

The Development Requires

php daemon

20/11 2013

1.2.0

1.2.0.0 https://github.com/uecode/daemon-bundle

Symfony2 Daemon Bundle

  Sources   Download

MIT

The Requires

 

The Development Requires

php daemon

20/11 2013

1.3.0

1.3.0.0 https://github.com/uecode/daemon-bundle

Symfony2 Daemon Bundle

  Sources   Download

MIT

The Requires

 

The Development Requires

php daemon

19/11 2013

1.1.0

1.1.0.0 https://github.com/uecode/daemon-bundle

Symfony2 Daemon Bundle

  Sources   Download

MIT

The Requires

 

The Development Requires

php daemon

15/10 2013

1.0.0

1.0.0.0 https://github.com/uecode/daemon-bundle

Symfony2 Daemon Bundle

  Sources   Download

MIT

The Requires

 

The Development Requires

php daemon