php 에서 Celery 사용하기
php 에서 celery 에 일을 시키기 위해서 celery 에서 사용하는 RadditMQ 로 message 를 날려주면 된다. 이 RaddiMQ 가 AMQ protocol 을 이용한다. 그래서 아래 php library 를 사용하기로 했다.task run 요청
celery worker 실행
아래 celery worker 를 받아서 실행후에celery -A pworker worker -l info --config=celconfig.py
task 실행 요청
'pworker.tasks.add' 라는 task 를 실행하라고 요청할 때 argument 는 4, 6 을 보낸다.
celery 가 사용하는 RabbitMQ 는 기본적으로
celery 가 사용하는 RabbitMQ 는 기본적으로
- queue 이름을 celery 로 하고,
- exchange 를 celery 로 하고,
- routing_key 는 없다.
아래처럼 request 를 보내면 된다.
<?php
use Bunny\Client;
require '../vendor/autoload.php';
$client = (new Client())->connect();
$channel = $client->channel();
$channel->queueDeclare('hello', false, false, false, false);
$channel->publish('{"id": "'.uniqid('php_').'",
"task": "pworker.tasks.add",
"args" : [4, 6],
"kwargs": {}
}',
['content-type' => 'application/json',
'content-encoding' => 'UTF-8',],
'celery', // 'exchange'
'celery'); // 'routing-key'
echo " [x] Sent 'Hello World!'\n";
$channel->close();
$client->disconnect();
댓글 없음:
댓글 쓰기