Gearman bundle, Warszawa 2013 edition

Post on 13-Jan-2015

712 views 5 download

Tags:

description

 

Transcript of Gearman bundle, Warszawa 2013 edition

GearmanBundleSymfonyCon Warsaw Edition

Bafactory, Barcelona

@Mmoreram

GearmanBundleProviding Gearman support on your SF2 projects

<?php namespace Acme\AcmeBundle\Workers; !/** * My simple Acme Class */ class AcmeClass { /** * My simple acme class method */ public function action() { ! } }

<?php namespace Acme\AcmeBundle\Workers; !use Mmoreram\GearmanBundle\Driver\Gearman; !/** * @Gearman\Work(name=“myworker”) */ class AcmeClass { /** * @Gearman\Job */ public function action(\GearmanJob $job) { // Do some stuff } }

$ php app/console gearman:workers:list ! @Worker: Acme\AcmeBundle\Workers\AcmeClass callablename: myworker Jobs: - #1 name: action callablename: myworker~action

$ php app/console gearman:worker:execute myworker

Supervisord

WorkerWorkerWorkerWorkerWorkerWorker

$this ->getContainer() ->get(‘gearman') ->doJob(‘myworker’, ‘value’);

<?php namespace Acme\AcmeBundle\Workers; !use Mmoreram\GearmanBundle\Driver\Gearman; !/** * @Gearman\Work(name=“myworker”) */ class AcmeClass { /** * @Gearman\Job */ public function action(\GearmanJob $job) { $workload = $job->workload(); } }

–Concept invented by me, like a boss…

Dependencies? WAAS

(Worker as a service)

<?php namespace Acme\AcmeBundle\Workers; !use Mmoreram\GearmanBundle\Driver\Gearman; !/** * @Gearman\Work(name=“myworker”, service=“worker.myworker”) */ class AcmeClass { /** * @Gearman\Job */ public function action(\GearmanJob $job) { $workload = $job->workload(); } }

<?php namespace Acme\AcmeBundle\Workers; !use Symfony\Component\DependencyInjection\ContainerAwareInterface; use Mmoreram\GearmanBundle\Driver\Gearman; !/** * @Gearman\Work(name=“myworker”, service=“worker.myworker”) */ class AcmeClass instanceof ContainerAwareInterface { /** * @Gearman\Job */ public function action(\GearmanJob $job) { $workload = $job->workload(); } }

What else?

Many features available for developers

Improving day by day all code, adding features and resolving issues

50 daily downloads ( Not as popular as Symfony packages… )

Platinum medal on SensioLabs Insight

And that you use GearmanBundle :)

I encourage you to use Queues

Moltes Gràcies, Thanks!