krlove / async-service-call-bundle
Symfony bundle for asynchronous service methods calls
Installs: 52 921
Dependents: 0
Suggesters: 0
Security: 0
Stars: 10
Watchers: 3
Forks: 5
Open Issues: 2
Type:symfony-bundle
Requires
- php: ^5.5 || ^7.0
- symfony/console: ^2.7 || ^3.0
- symfony/framework-bundle: ^2.7 || ^3.0
- symfony/monolog-bundle: ^2.7 || ^3.0
This package is auto-updated.
Last update: 2024-10-29 04:42:13 UTC
README
This bundle allows you to execute methods of your services asynchronously in a background process
Installation
Download using composer
composer require krlove/async-service-call-bundle
Enable the bundle at AppKernel
$bundles = [
...
new Krlove\AsyncServiceCallBundle\KrloveAsyncServiceCallBundle(),
]
Configuration
Options:
console_path
- path toconsole
script. Can be absolute or relative tokernel.root_dir
parameter's value. Defaults toapp/console
for Symfony 2.* andbin/console
for Symfony 3.*.php_path
- path to php executable. If no option provided in configuration,Symfony\Component\Process\PhpExecutableFinder::find
will be used to set it up.
Example:
# config.yml
krlove_async_service_call:
console_path: bin/console
php_path: /usr/local/bin/php
Usage
Define any service
<?php
namespace AppBundle\Service;
class AwesomeService
{
public function doSomething($int, $string, $array)
{
// do something heavy
sleep(10)
}
}
Register service
# services.yml
services:
app.service.awesome:
class: AppBundle\Service\AwesomeService
public: true
make sure your service is configured with
public: true
Execute doSomething
method asynchronously:
$this->get('krlove.async')
->call('app.service.awesome', 'doSomething', [1, 'string', ['array']);
Line above will execute AppBundle\Service\AwesomeService::doSomething
method by running krlove:service:call
command in asynchronous Symfony\Component\Process\Process
.
Process PID will be returned on success, null
on failure.