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!
$c = new Celery('localhost', 'myuser', 'mypass', 'myvhost');
$result = $c->PostTask('tasks.add', array(2,2));
while(!$result->isReady())
{
sleep(1);
echo '...';
}
if($result->isSuccess())
{
echo $result->getResult();
}
else
{
echo "ERROR";
echo $result->getTraceback();
}
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;
}
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.
If you need help integrating Celery in your PHP app, you may be interested in hiring me as a consultant.