2017 © Pedro Peláez
 

fuel-package fuel-jobqueue

FuelPHP Jobqueue Package

image

hosopy/fuel-jobqueue

FuelPHP Jobqueue Package

  • Wednesday, September 11, 2013
  • by hosopy
  • Repository
  • 3 Watchers
  • 6 Stars
  • 691 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 2 Open issues
  • 1 Versions
  • 2 % Grown

The README.md

fuel-jobqueue

Jobqueue package for FuelPHP., (*1)

Requirements

Installation

A: Using composer

Add required package to your composer.json., (*2)

    ...
    "require": {
        ...
        "hosopy/fuel-jobqueue": "dev-master",
        ...
    },
    ...

And run composer installer., (*3)

$ php composer.phar install

B: Manual

Download zip archive or clone this repository, and extract to fuel/app/packages/fuel-jobqueue., (*4)

Usage

1. Enable package

'always_load' => array(
    'packages' => array(
        'fuel-jobqueue',
        ...

2. Configuration

Copy default configuration file to your app/config directory., (*5)

$ cp fuel/packages/fuel-jobqueue/config/jobqueue.php fuel/app/config

If you want to run beanstalkd in other machine or port, edit configuration., (*6)

For the moment, keep default configuration., (*7)

return array(
    // default connection name
    'default' => 'default_connection',

    'connections' => array(
        'default_connection' => array(
            'driver'   => 'beanstalkd',
            'host'     => '127.0.0.1',
            'port'     => '11300',
            'queue'    => 'jobqueue',
        ),
    ),
);

3. Install and run beanstalkd

Currently, fuel-jobqueue uses beanstalkd as a backend of queueing., (*8)

If beanstalkd is not installed in your machine, install it first., (*9)

# Example: homebrew (Mac)
$ brew install beanstalkd
$ beanstalkd
# Example: Ubuntu
$ sudo apt-get install beanstalkd

If you want to know about beanstalkd more, see ., (*10)

4. Define Job

Define your job handler class in fuel/app/classes/myjob.php., (*11)

<?php
class Myjob
{
    // [IMPORTANT] Requires 'fire' method as a entry point.
    public function fire($job, $data)
    {
        // heavy job
        sleep(10);
    }
}

5. Queueing Job

In your controller, call \Jobqueue\Queue::push($job, $data) to push a new job., (*12)

class Controller_Welcome extends Controller
{
    public function action_index()
    {
        // push a new job onto the default queue of the default connection.
        // 'Myjob' is a class name you have defined.
        \Jobqueue\Queue::push('Myjob', array('message' => 'Hello World!'));

        return Response::forge(View::forge('welcome/index'));
    }
    ...

6. Run worker task

Queued jobs cannot be executed untill the worker process pop it from the queue., (*13)

$ cd FUEL_ROOT
$ php oil refine jqworker:listen --connection=default_connection --queue=jobqueue

7. Execute controller action

Now, we are ready for queueing!, (*14)

Execute your controller action., (*15)

Configuration

Sorry under construction..., (*16)

Job

Sorry under construction..., (*17)

Queue

Sorry under construction..., (*18)

Task

Sorry under construction..., (*19)

The Versions

11/09 2013

dev-master

9999999-dev https://github.com/hosopy/fuel-jobqueue

FuelPHP Jobqueue Package

  Sources   Download

MIT

The Requires

 

queue job fuelphp jobqueue