PHPackages                             massivescale/celery-php - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Caching](/categories/caching)
4. /
5. massivescale/celery-php

AbandonedArchivedLibrary[Caching](/categories/caching)

massivescale/celery-php
=======================

PHP client for Celery task queue

2.1.2(9y ago)421377.5k—10%119[5 PRs](https://github.com/gjedeer/celery-php/pulls)BSD-2-ClausePHP

Since Jul 21Pushed 4y ago31 watchersCompare

[ Source](https://github.com/gjedeer/celery-php)[ Packagist](https://packagist.org/packages/massivescale/celery-php)[ Docs](https://github.com/gjedeer/celery-php/)[ RSS](/packages/massivescale-celery-php/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)DependenciesVersions (7)Used By (0)

Archived
--------

[](#archived)

I have no more commercial or personal use for this project. It doesn't seem to be used by any Free Software projects and I'm definitely not spending my spare time on something used internally by some random companies I never met. Check out the [forks](https://github.com/gjedeer/celery-php/network), maybe you'll find something that works for you there.

Thanks to all the contributors!

PHP client capable of executing [Celery](http://celeryproject.org/) tasks and reading asynchronous results.

Uses [AMQP extension from PECL](http://www.php.net/manual/en/amqp.setup.php), the [PHP AMQP implementation](https://github.com/php-amqplib/php-amqplib) or Redis and the following settings in Celery:

```
result_serializer = 'json'
result_expires = None
task_track_started = False

```

The required PECL-AMQP version is at least 1.0. Last version tested is 1.4.

Last PHP-amqplib version tested is 2.5.1.

Last predis version tested is 1.0.1.

Requires Celery 4.0+.

[API documentation](https://massivescale.net/celery-php/li_celery-php.html) is dead, [help wanted](https://github.com/gjedeer/celery-php/issues/82)

POSTING TASKS
-------------

[](#posting-tasks)

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

// The results are serializable so you can do the following:
$_SESSION['celery_result'] = $result;
// and use this variable in an AJAX call or whatever

```

*tip: if using RabbitMQ guest user, set "/" vhost*

READING ASYNC RESULTS
---------------------

[](#reading-async-results)

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

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

```

GET ASYNC RESULT MESSAGE
------------------------

[](#get-async-result-message)

```
$c = new \Celery\Celery('localhost', 'myuser', 'mypass', 'myvhost');
$message = $c->getAsyncResultMessage('tasks.add', 'taskId');

```

PYTHON-LIKE API
---------------

[](#python-like-api)

An API compatible to AsyncResult in Python is available too.

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

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

```

ABOUT
-----

[](#about)

Based on [this blog post](http://www.toforge.com/2011/01/run-celery-tasks-from-php/)and reading Celery sources. Thanks to Skrat, author of [Celerb](https://github.com/skrat/celerb) for a tip about response encoding. Created for the needs of my consulting work at [Massive Scale](http://massivescale.net/).

License is 2-clause BSD.

DEVELOPMENT
-----------

[](#development)

[Development process and goals.](DEVELOPMENT.md)

CONNECTING VIA SSL
------------------

[](#connecting-via-ssl)

Connecting to a RabbitMQ server that requires SSL is currently only possible via PHP-amqplib to do so you'll need to create a celery object with ssl options:

```
$ssl_options = [
    'cafile' => 'PATH_TO_CA_CERT_FILE',
    'verify_peer' => true,
    'passphrase' => 'LOCAL_CERT_PASSPHRASE',
    'local_cert' => 'PATH_TO_COMBINED_CLIENT_CERT_KEY',
    'CN_match' => 'CERT_COMMON_NAME'
];

$c = new \Celery\Celery($host, $user, $password, $vhost, 'celery', 'celery', 5671, false, 0, $ssl_options);

```

CONNECTING TO REDIS
-------------------

[](#connecting-to-redis)

Refer to files in `testscenario/` for examples of celeryconfig.py.

```
$c = new \Celery\Celery(
    'localhost', /* Server */
    '', /* Login */
    'test', /* Password */
    'wutka', /* vhost */
    'celery', /* exchange */
    'celery', /* binding */
    6379, /* port */
    'redis' /* connector */
);

```

###  Health Score

47

—

FairBetter than 94% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity57

Moderate usage in the ecosystem

Community31

Small or concentrated contributor base

Maturity67

Established project with proven stability

 Bus Factor1

Top contributor holds 72.5% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~452 days

Total

2

Last Release

3502d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/eda3c8b3933ef6c7130a4aea294372b7293a690b00ca265cdf96513b4db78837?d=identicon)[massivescale](/maintainers/massivescale)

![](https://www.gravatar.com/avatar/5ceefd7be98826925899a69e8c963a7d6ff98b2a6df65552a9d9d328a329609a?d=identicon)[jdufresne](/maintainers/jdufresne)

---

Top Contributors

[![gjedeer](https://avatars.githubusercontent.com/u/315648?v=4)](https://github.com/gjedeer "gjedeer (145 commits)")[![jdufresne](https://avatars.githubusercontent.com/u/347634?v=4)](https://github.com/jdufresne "jdufresne (29 commits)")[![m0nk](https://avatars.githubusercontent.com/u/44160?v=4)](https://github.com/m0nk "m0nk (8 commits)")[![jjbubudi](https://avatars.githubusercontent.com/u/788781?v=4)](https://github.com/jjbubudi "jjbubudi (2 commits)")[![jaesivsm](https://avatars.githubusercontent.com/u/1969240?v=4)](https://github.com/jaesivsm "jaesivsm (2 commits)")[![lankesh](https://avatars.githubusercontent.com/u/4975645?v=4)](https://github.com/lankesh "lankesh (2 commits)")[![ergonlogic](https://avatars.githubusercontent.com/u/380362?v=4)](https://github.com/ergonlogic "ergonlogic (2 commits)")[![lirenzhu](https://avatars.githubusercontent.com/u/768643?v=4)](https://github.com/lirenzhu "lirenzhu (1 commits)")[![SandyTruth](https://avatars.githubusercontent.com/u/22897317?v=4)](https://github.com/SandyTruth "SandyTruth (1 commits)")[![0x0ece](https://avatars.githubusercontent.com/u/1491992?v=4)](https://github.com/0x0ece "0x0ece (1 commits)")[![smuuf](https://avatars.githubusercontent.com/u/6860713?v=4)](https://github.com/smuuf "smuuf (1 commits)")[![codingthoughts](https://avatars.githubusercontent.com/u/2997904?v=4)](https://github.com/codingthoughts "codingthoughts (1 commits)")[![eagafonov](https://avatars.githubusercontent.com/u/111455?v=4)](https://github.com/eagafonov "eagafonov (1 commits)")[![gena01](https://avatars.githubusercontent.com/u/312125?v=4)](https://github.com/gena01 "gena01 (1 commits)")[![gplaza](https://avatars.githubusercontent.com/u/1881764?v=4)](https://github.com/gplaza "gplaza (1 commits)")[![jdeniau](https://avatars.githubusercontent.com/u/1398469?v=4)](https://github.com/jdeniau "jdeniau (1 commits)")[![lexabug](https://avatars.githubusercontent.com/u/1069062?v=4)](https://github.com/lexabug "lexabug (1 commits)")

---

Tags

redisqueuecronAMQPtaskcelerypython

### Embed Badge

![Health badge](/badges/massivescale-celery-php/health.svg)

```
[![Health](https://phpackages.com/badges/massivescale-celery-php/health.svg)](https://phpackages.com/packages/massivescale-celery-php)
```

###  Alternatives

[javibravo/simpleue

Php package to manage queue tasks in a simple way

130332.1k1](/packages/javibravo-simpleue)[enqueue/redis

Message Queue Redis Transport

405.5M25](/packages/enqueue-redis)[enqueue/magento2-enqueue

Message Queue solutions for Magento2. Supports RabbitMQ, AMQP, STOMP, Amazon SQS, Kafka, Redis, Google PubSub, Gearman, Beanstalk, Google PubSub

4918.8k](/packages/enqueue-magento2-enqueue)[resquebundle/resque

A Symfony 4 bundle to manage Resque job queues

51137.1k1](/packages/resquebundle-resque)[spinx/sidekiq-job-php

Push and schedule jobs to Sidekiq from PHP

37219.6k](/packages/spinx-sidekiq-job-php)[bazilio/yii2-async

Provides translucent api for moving large tasks out of request context

6248.8k2](/packages/bazilio-yii2-async)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
