Download the PHP package massivescale/celery-php without Composer
On this page you can find all versions of the php package massivescale/celery-php. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download massivescale/celery-php
More information about massivescale/celery-php
Files in massivescale/celery-php
Package celery-php
Short Description PHP client for Celery task queue
License BSD-2-Clause
Homepage https://github.com/gjedeer/celery-php/
Informations about the package celery-php
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, maybe you'll find something that works for you there.
Thanks to all the contributors!
PHP client capable of executing Celery tasks and reading asynchronous results.
Uses AMQP extension from PECL, the PHP AMQP implementation 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 is dead, help wanted
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
while (!$result->isReady()) {
sleep(1);
echo '...';
}
if ($result->isSuccess()) {
echo $result->getResult();
} else {
echo "ERROR";
echo $result->getTraceback();
}
GET ASYNC RESULT MESSAGE
$c = new \Celery\Celery('localhost', 'myuser', 'mypass', 'myvhost');
$message = $c->getAsyncResultMessage('tasks.add', 'taskId');
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
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 2-clause BSD.
DEVELOPMENT
Development process and goals.
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
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 */
);