celery-php

PHP client for Celery

  • 所有者: gjedeer/celery-php
  • 平台:
  • 許可證: Other
  • 分類:
  • 主題:
  • 喜歡:
    1
      比較:

Github星跟蹤圖

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 */
);

主要指標

概覽
名稱與所有者gjedeer/celery-php
主編程語言PHP
編程語言PHP (語言數: 4)
平台
許可證Other
所有者活动
創建於2011-08-18 19:51:14
推送於2021-11-30 10:07:44
最后一次提交2021-11-30 11:07:44
發布數3
最新版本名稱2.1.2 (發布於 )
第一版名稱2.0.2 (發布於 )
用户参与
星數421
關注者數32
派生數121
提交數217
已啟用問題?
問題數57
打開的問題數9
拉請求數53
打開的拉請求數5
關閉的拉請求數10
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?