SlideShare una empresa de Scribd logo
1 de 24
Gearman
         'The manager'

 ”since it dispatches jobs to be done,
but does not do anything useful itself.”
Presentation done using info from...


http://www.slideshare.net/pcdinh/gearman-and-asynchronous-processing-in-php-applications-6135047

http://assets.en.oreilly.com/1/event/45/The%20Gearman%20Cookbook%20Presentation.pdf

http://www.gearman.org

http://nz.php.net/manual/en/book.gearman.php

others...
Scalable Solutions..

    
        More Hardware
    
        Caching
    
        Precalculated Data
    
        Load Balancing
    
        Multi-tier application
    
        Job Queue
History


    Created by Danga Interactive.



    Some company that developed Memcache.



    Original implementation in perl (2005).



    2008 rewriteen in C by Brian Aker



    PHP Extension by James Luedke
Used by


Digg: 45+ Servers, 400K jobs/day

Yahoo: 60+ servers, 6M jobs/day

And many others..
Installing
Compiling:

tar xzf gearmand-X.Y.tar.gz
cd gearmand-X.Y
./configure
make
make install

Starting server:

$ gearmand -d

Pecl extension:

tar xzf gearman-X.Y.tgz
cd gearman-X.Y
phpize
./configure
make
make install

To add to the php.ini:

extension="gearman.so"
Terminology


    Client: Create jobs to be run and send them to a job server.



    Worker: Run jobs given from the job server.



    Job Server: Handle the job queue form clients to workers.
Gearman is...


“A massively distributed,
massively fault tolerant
fork mechanism.”

- Joe Stump, SimpleGeo
Features


    Open Source.

    Simple & Fast.

    Multi-language.

    Flexible application design.

    Load Balancing.

    No single point of failure.
Client                Client   Client                 Client




         Job Server                      Job Server




Worker                Worker    Worker                Worker
Queue Options

 
     Memory
 
     Memcached
 
     Mysql/Drizzle
 
     PostgreSQL
 
     SQLite
 
     Tokio Cabinet
Foreground
(synchronus)

     Or

 Background
(asynchronus)
Gearman Client
       Fishpond_Controller_Front::getResource('gearman')

               ->getGearmanClient()

              ->doBackground("updateCompetitorPrice", $this->_barcode);


              ->do("updateCompetitorPrice", $this->_barcode);



    GearmanClient::do() - Run a single task and return a result

    GearmanClient::doLow() - Run a single low priority task

    GearmanClient::doBackground() - Run a task in the background

    GearmanClient::doHighBackground() - Run a high priority task in the background

    GearmanClient::doLowBackground() - Run a low priority task in the background
Strategies


    Scatter / Gather.

    Map / Reduce.

    Asynchronus Queues.

    Pipeline Processing.
Scatter / Gather

                                 Client




Product Detail                                           Recomendations




                 Price Calculation        Image Resize
$client = Fishpond_Controller_Front::getResource('gearman')
      ->getGearmanClient();

    //adding gearman tasks
    $client->addTask("getProductDetail", $barcode);
    $client->addTask("getPrice", $barcode);
    $client->addTask("resizeImage", serialize($barcode,100,100));
    $client->addTask("getRecomendations", $barcode);

    //callbacks to know when this finish
    $client->setCompleteCallback(array($this, "complete"));

    //runing tasks
    $client->runTasks();

/**
 * Callback when task is complete
 *
 */
public function complete($task)
{

    $data = $task->data();

}
Task Methods


    GearmanClient::addTaskHigh() - Add a high priority task to run in parallel

    GearmanClient::addTaskLow() - Add a low priority task to run in parallel

    GearmanClient::addTaskBackground() - Add a background task to be run in parallel

    GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel

    GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel


    GearmanClient::runTasks() - Run a list of tasks in parallel
Client Callback

GearmanClient::setDataCallback() - Callback function when there is a data packet for a task

GearmanClient::setCompleteCallback() - Set a function to be called on task completion

GearmanClient::setCreatedCallback() - Set a callback for when a task is queued.

GearmanClient::setExceptionCallback() - Set a callback for worker exceptions.

GearmanClient::setFailCallback() - Set callback for job failure.

GearmanClient::setStatusCallback() - Set a callback for collecting task status.

GearmanClient::setWarningCallback() - Set a callback for worker warnings.

GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates
Scatter / Gather


    Concurrent tasks with different workers.

    All tasks run in the time for longest running.

    Must have enough workers available.
Map/Reduce

                    Client
                    Task T




Task T-0     Task T-1        Task T-2      Task T-3




Task T-00   Task T-01          Task T-02
Asynchronous Queues
                   No everyting need inmediate procesing..
                   
                     Competitor pricing.
                   
                     Emails.
                   
                     Whole price engine.
                   
                     Loging.
                   
                     Etc.


Example:

$gearmanClient = Fishpond_Controller_Front::getResource('gearman')->getGearmanClient();

$gearmanClient->doBackground("updateCompetitorPrice", $this->_barcode);
Loging

<VirtualHost *:80>
 ServerName example.com
 DocumentRoot /var/www/
 CustomLog “| gearman -n -f looger” common   (client)
</VirtualHost>
Pipeline Procesing

                    Client
                    Task T




 Worker             Worker        Worker
Operation 1        Operation 2   Operation 3




                    Output
Questions ?

Más contenido relacionado

La actualidad más candente

GR8Conf 2011: Grails Webflow
GR8Conf 2011: Grails WebflowGR8Conf 2011: Grails Webflow
GR8Conf 2011: Grails Webflow
GR8Conf
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuning
AOE
 

La actualidad más candente (20)

React + Redux. Best practices
React + Redux.  Best practicesReact + Redux.  Best practices
React + Redux. Best practices
 
GR8Conf 2011: Grails Webflow
GR8Conf 2011: Grails WebflowGR8Conf 2011: Grails Webflow
GR8Conf 2011: Grails Webflow
 
Angular mix chrisnoring
Angular mix chrisnoringAngular mix chrisnoring
Angular mix chrisnoring
 
Testing in airflow
Testing in airflowTesting in airflow
Testing in airflow
 
Oaktable World 2014 Toon Koppelaars: database constraints polite excuse
Oaktable World 2014 Toon Koppelaars: database constraints polite excuseOaktable World 2014 Toon Koppelaars: database constraints polite excuse
Oaktable World 2014 Toon Koppelaars: database constraints polite excuse
 
Introduction to powershell
Introduction to powershellIntroduction to powershell
Introduction to powershell
 
Autoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomadAutoscaling with hashi_corp_nomad
Autoscaling with hashi_corp_nomad
 
Nova Componets
Nova ComponetsNova Componets
Nova Componets
 
JUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by exampleJUDCon London 2011 - Bin packing with drools planner by example
JUDCon London 2011 - Bin packing with drools planner by example
 
Perlbal Tutorial
Perlbal TutorialPerlbal Tutorial
Perlbal Tutorial
 
No more promises lets RxJS 2 Edit
No more promises lets RxJS 2 EditNo more promises lets RxJS 2 Edit
No more promises lets RxJS 2 Edit
 
Dive into React Performance
Dive into React PerformanceDive into React Performance
Dive into React Performance
 
Enterprise State Management with NGRX/platform
Enterprise State Management with NGRX/platformEnterprise State Management with NGRX/platform
Enterprise State Management with NGRX/platform
 
Blood magic
Blood magicBlood magic
Blood magic
 
Getting started with ReactJS
Getting started with ReactJSGetting started with ReactJS
Getting started with ReactJS
 
Marble Testing RxJS streams
Marble Testing RxJS streamsMarble Testing RxJS streams
Marble Testing RxJS streams
 
Unit Testing Express Middleware
Unit Testing Express MiddlewareUnit Testing Express Middleware
Unit Testing Express Middleware
 
Workshop 19: ReactJS Introduction
Workshop 19: ReactJS IntroductionWorkshop 19: ReactJS Introduction
Workshop 19: ReactJS Introduction
 
Performance measurement and tuning
Performance measurement and tuningPerformance measurement and tuning
Performance measurement and tuning
 
Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...
Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...
Building and Incredible Machine with Pipelines and Generators in PHP (IPC Ber...
 

Destacado (8)

Kill bottlenecks with gearman, sphinx, and memcached, Confoo 2011
Kill bottlenecks with gearman, sphinx, and memcached, Confoo 2011Kill bottlenecks with gearman, sphinx, and memcached, Confoo 2011
Kill bottlenecks with gearman, sphinx, and memcached, Confoo 2011
 
Quick Introduction to Gearman
Quick Introduction to GearmanQuick Introduction to Gearman
Quick Introduction to Gearman
 
Website review
Website reviewWebsite review
Website review
 
Gearmam, from the_worker's_perspective copy
Gearmam, from the_worker's_perspective copyGearmam, from the_worker's_perspective copy
Gearmam, from the_worker's_perspective copy
 
Ease into HTML5 and CSS3
Ease into HTML5 and CSS3Ease into HTML5 and CSS3
Ease into HTML5 and CSS3
 
Work Queues
Work QueuesWork Queues
Work Queues
 
Scale like a pro with Gearman
Scale like a pro with GearmanScale like a pro with Gearman
Scale like a pro with Gearman
 
Gearman and asynchronous processing in PHP applications
Gearman and asynchronous processing in PHP applicationsGearman and asynchronous processing in PHP applications
Gearman and asynchronous processing in PHP applications
 

Similar a Gearmanpresentation 110308165409-phpapp01

Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
buildacloud
 
Background Jobs - Com BackgrounDRb
Background Jobs - Com BackgrounDRbBackground Jobs - Com BackgrounDRb
Background Jobs - Com BackgrounDRb
Juan Maiz
 
Gearman jobqueue
Gearman jobqueueGearman jobqueue
Gearman jobqueue
Magento Dev
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
tomcopeland
 

Similar a Gearmanpresentation 110308165409-phpapp01 (20)

Gearman - Job Queue
Gearman - Job QueueGearman - Job Queue
Gearman - Job Queue
 
Distributed Applications with Perl & Gearman
Distributed Applications with Perl & GearmanDistributed Applications with Perl & Gearman
Distributed Applications with Perl & Gearman
 
Gearman & PHP
Gearman & PHPGearman & PHP
Gearman & PHP
 
JavaCro'14 - Unit testing in AngularJS – Slaven Tomac
JavaCro'14 - Unit testing in AngularJS – Slaven TomacJavaCro'14 - Unit testing in AngularJS – Slaven Tomac
JavaCro'14 - Unit testing in AngularJS – Slaven Tomac
 
Complex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBoxComplex Made Simple: Sleep Better with TorqueBox
Complex Made Simple: Sleep Better with TorqueBox
 
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
Troubleshooting Strategies for CloudStack Installations by Kirk Kosinski
 
Background Jobs - Com BackgrounDRb
Background Jobs - Com BackgrounDRbBackground Jobs - Com BackgrounDRb
Background Jobs - Com BackgrounDRb
 
Gearman work queue in php
Gearman work queue in phpGearman work queue in php
Gearman work queue in php
 
Tasks: you gotta know how to run them
Tasks: you gotta know how to run themTasks: you gotta know how to run them
Tasks: you gotta know how to run them
 
Building Scalable Websites with Perl
Building Scalable Websites with PerlBuilding Scalable Websites with Perl
Building Scalable Websites with Perl
 
Gearman jobqueue
Gearman jobqueueGearman jobqueue
Gearman jobqueue
 
Using React, Redux and Saga with Lottoland APIs
Using React, Redux and Saga with Lottoland APIsUsing React, Redux and Saga with Lottoland APIs
Using React, Redux and Saga with Lottoland APIs
 
Using Task Queues and D3.js to build an analytics product on App Engine
Using Task Queues and D3.js to build an analytics product on App EngineUsing Task Queues and D3.js to build an analytics product on App Engine
Using Task Queues and D3.js to build an analytics product on App Engine
 
Velocity 2018 preetha appan final
Velocity 2018   preetha appan finalVelocity 2018   preetha appan final
Velocity 2018 preetha appan final
 
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
Jenkins Online Meetup - Automated SLI based Build Validation with KeptnJenkins Online Meetup - Automated SLI based Build Validation with Keptn
Jenkins Online Meetup - Automated SLI based Build Validation with Keptn
 
Server side rendering with React and Symfony
Server side rendering with React and SymfonyServer side rendering with React and Symfony
Server side rendering with React and Symfony
 
Building a serverless company on AWS lambda and Serverless framework
Building a serverless company on AWS lambda and Serverless frameworkBuilding a serverless company on AWS lambda and Serverless framework
Building a serverless company on AWS lambda and Serverless framework
 
Gearman and Perl
Gearman and PerlGearman and Perl
Gearman and Perl
 
Structure your Play application with the cake pattern (and test it)
Structure your Play application with the cake pattern (and test it)Structure your Play application with the cake pattern (and test it)
Structure your Play application with the cake pattern (and test it)
 
Railsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshareRailsconf2011 deployment tips_for_slideshare
Railsconf2011 deployment tips_for_slideshare
 

Último

Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
Chris Hunter
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
SanaAli374401
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
MateoGardella
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
kauryashika82
 

Último (20)

psychiatric nursing HISTORY COLLECTION .docx
psychiatric  nursing HISTORY  COLLECTION  .docxpsychiatric  nursing HISTORY  COLLECTION  .docx
psychiatric nursing HISTORY COLLECTION .docx
 
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
Presentation by Andreas Schleicher Tackling the School Absenteeism Crisis 30 ...
 
Application orientated numerical on hev.ppt
Application orientated numerical on hev.pptApplication orientated numerical on hev.ppt
Application orientated numerical on hev.ppt
 
Advance Mobile Application Development class 07
Advance Mobile Application Development class 07Advance Mobile Application Development class 07
Advance Mobile Application Development class 07
 
Unit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptxUnit-V; Pricing (Pharma Marketing Management).pptx
Unit-V; Pricing (Pharma Marketing Management).pptx
 
Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024Mehran University Newsletter Vol-X, Issue-I, 2024
Mehran University Newsletter Vol-X, Issue-I, 2024
 
Making and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdfMaking and Justifying Mathematical Decisions.pdf
Making and Justifying Mathematical Decisions.pdf
 
An Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdfAn Overview of Mutual Funds Bcom Project.pdf
An Overview of Mutual Funds Bcom Project.pdf
 
Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104Nutritional Needs Presentation - HLTH 104
Nutritional Needs Presentation - HLTH 104
 
Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..Sports & Fitness Value Added Course FY..
Sports & Fitness Value Added Course FY..
 
Gardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch LetterGardella_PRCampaignConclusion Pitch Letter
Gardella_PRCampaignConclusion Pitch Letter
 
How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17How to Give a Domain for a Field in Odoo 17
How to Give a Domain for a Field in Odoo 17
 
APM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across SectorsAPM Welcome, APM North West Network Conference, Synergies Across Sectors
APM Welcome, APM North West Network Conference, Synergies Across Sectors
 
ICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptxICT Role in 21st Century Education & its Challenges.pptx
ICT Role in 21st Century Education & its Challenges.pptx
 
Unit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptxUnit-IV; Professional Sales Representative (PSR).pptx
Unit-IV; Professional Sales Representative (PSR).pptx
 
Paris 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activityParis 2024 Olympic Geographies - an activity
Paris 2024 Olympic Geographies - an activity
 
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in DelhiRussian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
Russian Escort Service in Delhi 11k Hotel Foreigner Russian Call Girls in Delhi
 
Measures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and ModeMeasures of Central Tendency: Mean, Median and Mode
Measures of Central Tendency: Mean, Median and Mode
 
Web & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdfWeb & Social Media Analytics Previous Year Question Paper.pdf
Web & Social Media Analytics Previous Year Question Paper.pdf
 
This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.This PowerPoint helps students to consider the concept of infinity.
This PowerPoint helps students to consider the concept of infinity.
 

Gearmanpresentation 110308165409-phpapp01

  • 1. Gearman 'The manager' ”since it dispatches jobs to be done, but does not do anything useful itself.”
  • 2. Presentation done using info from... http://www.slideshare.net/pcdinh/gearman-and-asynchronous-processing-in-php-applications-6135047 http://assets.en.oreilly.com/1/event/45/The%20Gearman%20Cookbook%20Presentation.pdf http://www.gearman.org http://nz.php.net/manual/en/book.gearman.php others...
  • 3. Scalable Solutions..  More Hardware  Caching  Precalculated Data  Load Balancing  Multi-tier application  Job Queue
  • 4. History  Created by Danga Interactive.  Some company that developed Memcache.  Original implementation in perl (2005).  2008 rewriteen in C by Brian Aker  PHP Extension by James Luedke
  • 5. Used by Digg: 45+ Servers, 400K jobs/day Yahoo: 60+ servers, 6M jobs/day And many others..
  • 6. Installing Compiling: tar xzf gearmand-X.Y.tar.gz cd gearmand-X.Y ./configure make make install Starting server: $ gearmand -d Pecl extension: tar xzf gearman-X.Y.tgz cd gearman-X.Y phpize ./configure make make install To add to the php.ini: extension="gearman.so"
  • 7. Terminology  Client: Create jobs to be run and send them to a job server.  Worker: Run jobs given from the job server.  Job Server: Handle the job queue form clients to workers.
  • 8. Gearman is... “A massively distributed, massively fault tolerant fork mechanism.” - Joe Stump, SimpleGeo
  • 9. Features  Open Source.  Simple & Fast.  Multi-language.  Flexible application design.  Load Balancing.  No single point of failure.
  • 10. Client Client Client Client Job Server Job Server Worker Worker Worker Worker
  • 11. Queue Options  Memory  Memcached  Mysql/Drizzle  PostgreSQL  SQLite  Tokio Cabinet
  • 12. Foreground (synchronus) Or Background (asynchronus)
  • 13. Gearman Client Fishpond_Controller_Front::getResource('gearman') ->getGearmanClient() ->doBackground("updateCompetitorPrice", $this->_barcode); ->do("updateCompetitorPrice", $this->_barcode);  GearmanClient::do() - Run a single task and return a result  GearmanClient::doLow() - Run a single low priority task  GearmanClient::doBackground() - Run a task in the background  GearmanClient::doHighBackground() - Run a high priority task in the background  GearmanClient::doLowBackground() - Run a low priority task in the background
  • 14. Strategies  Scatter / Gather.  Map / Reduce.  Asynchronus Queues.  Pipeline Processing.
  • 15. Scatter / Gather Client Product Detail Recomendations Price Calculation Image Resize
  • 16. $client = Fishpond_Controller_Front::getResource('gearman') ->getGearmanClient(); //adding gearman tasks $client->addTask("getProductDetail", $barcode); $client->addTask("getPrice", $barcode); $client->addTask("resizeImage", serialize($barcode,100,100)); $client->addTask("getRecomendations", $barcode); //callbacks to know when this finish $client->setCompleteCallback(array($this, "complete")); //runing tasks $client->runTasks(); /** * Callback when task is complete * */ public function complete($task) { $data = $task->data(); }
  • 17. Task Methods  GearmanClient::addTaskHigh() - Add a high priority task to run in parallel  GearmanClient::addTaskLow() - Add a low priority task to run in parallel  GearmanClient::addTaskBackground() - Add a background task to be run in parallel  GearmanClient::addTaskHighBackground() - Add a high priority background task to be run in parallel  GearmanClient::addTaskLowBackground() - Add a low priority background task to be run in parallel  GearmanClient::runTasks() - Run a list of tasks in parallel
  • 18. Client Callback GearmanClient::setDataCallback() - Callback function when there is a data packet for a task GearmanClient::setCompleteCallback() - Set a function to be called on task completion GearmanClient::setCreatedCallback() - Set a callback for when a task is queued. GearmanClient::setExceptionCallback() - Set a callback for worker exceptions. GearmanClient::setFailCallback() - Set callback for job failure. GearmanClient::setStatusCallback() - Set a callback for collecting task status. GearmanClient::setWarningCallback() - Set a callback for worker warnings. GearmanClient::setWorkloadCallback() - Set a callback for accepting incremental data updates
  • 19. Scatter / Gather  Concurrent tasks with different workers.  All tasks run in the time for longest running.  Must have enough workers available.
  • 20. Map/Reduce Client Task T Task T-0 Task T-1 Task T-2 Task T-3 Task T-00 Task T-01 Task T-02
  • 21. Asynchronous Queues No everyting need inmediate procesing..  Competitor pricing.  Emails.  Whole price engine.  Loging.  Etc. Example: $gearmanClient = Fishpond_Controller_Front::getResource('gearman')->getGearmanClient(); $gearmanClient->doBackground("updateCompetitorPrice", $this->_barcode);
  • 22. Loging <VirtualHost *:80> ServerName example.com DocumentRoot /var/www/ CustomLog “| gearman -n -f looger” common (client) </VirtualHost>
  • 23. Pipeline Procesing Client Task T Worker Worker Worker Operation 1 Operation 2 Operation 3 Output