
SwooleServer::addProcess를 사용하여 추가한 프로세스는 스레드나 프로세스 간 통신을 위해 Swoole의 내장 통신 메커니즘인 `swoole_table` 또는 `swoole_coro`를 사용할 수 있습니다.
1. `swoole_table` 사용: 스레드나 프로세스 간 데이터를 공유할 수 있습니다.
#hostingforum.kr
php
$table = new swoole_table(1024, 1, 1);
$table->column('id', swoole_table::TYPE_INT);
$table->column('data', swoole_table::TYPE_STRING);
$table->create();
// 프로세스 A에서 데이터를 저장
$table->set('id', 1, 'data');
// 프로세스 B에서 데이터를 읽어옵니다.
$data = $table->get('id', 1, 'data');
2. `swoole_coro` 사용: 스레드나 프로세스 간 비동기 통신을 위해 사용할 수 있습니다.
#hostingforum.kr
php
$coro = new swoole_coro();
$coro->send('data');
// 프로세스 B에서 데이터를 받습니다.
$data = $coro->recv();
또한, Swoole 4.4.0 버전부터는 프로세스 간 통신을 위해 `swoole_process` 클래스를 사용할 수 있습니다.
#hostingforum.kr
php
$process = new swoole_process(function ($worker) {
// 프로세스 B에서 데이터를 받습니다.
$data = $worker->recv();
}, false);
// 프로세스 A에서 데이터를 보냅니다.
$process->send('data');
이러한 방법을 통해 스레드나 프로세스 간 통신을 수행할 수 있습니다.
2025-05-18 12:28