lirenzhu / celery-php

PHP client for Celery

Home Page:http://massivescale.net/celery-php/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

PHP client capable of executing Celery tasks and reading asynchronous results.

Requires AMQP extension from PECL and the following settings in Celery:

CELERY_RESULT_SERIALIZER = "json"
CELERY_TASK_RESULT_EXPIRES = None

PHP-AMQP is supported in version 1.0.0 and higher because its API has been completely remade when it entered 1.0. There is a separate branch for 0.3.

Last Celery version tested is 3.0.19.

Don't want to compile a PECL extension? Try the expermiental pure PHP branch!

POSTING TASKS

$c = new Celery('localhost', 'myuser', 'mypass', 'myvhost');
$result = $c->PostTask('tasks.add', array(2,2));

READING ASYNC RESULTS

while(!$result->isReady())
{
	sleep(1);
	echo '...';
}

if($result->isSuccess())
{
	echo $result->getResult();
}
else
{
	echo "ERROR";
	echo $result->getTraceback();
}

PYTHON-LIKE API

An API compatible to AsyncResult in Python is available too.

    $c = new Celery('localhost', 'myuser', 'mypass', 'myvhost');
    $result = $c->PostTask('tasks.add', array(2,2));

    $result->get();
    if($result->successful())
    {
            echo $result->result;
    }

ABOUT

Created in mere 2 days, so expect no wonders. Based on this blog post and reading Celery sources. Thanks to Skrat, author of Celerb for a tip about response encoding. Created for the needs of my consulting work at Massive Scale. License is changed from Beerware to 2-clause BSD.

SUPPORT

If you need help integrating Celery in your PHP app, you may be interested in hiring me as a consultant.

About

PHP client for Celery

http://massivescale.net/celery-php/


Languages

Language:PHP 94.4%Language:Shell 3.5%Language:Python 2.1%