라이브러리
[PHP] SwooleProcess::useQueue - 부모 프로세스와 자식 프로세스 간 통신 방법으로 메시지 큐를 생성합니다.
SwooleProcess::useQueue
SwooleProcess::useQueue는 PHP에서 프로세스 간의 메시지 큐를 사용하는 방법입니다. 메시지 큐는 프로세스 간의 통신을 위해 사용되는 데이터 구조입니다. 프로세스 간에 데이터를 전달할 때 사용됩니다.
사용법
SwooleProcess::useQueue를 사용하려면 먼저 메시지 큐를 생성해야 합니다. 메시지 큐를 생성한 후, 프로세스 간에 데이터를 전달할 수 있습니다.
#hostingforum.kr
php
use SwooleProcess;
// 메시지 큐를 생성합니다.
$queue = new ProcessPoolWorkerQueue();
// 메시지 큐에 데이터를 추가합니다.
$queue->push('Hello, world!');
// 메시지 큐에서 데이터를 가져옵니다.
$message = $queue->pop();
echo $message; // Hello, world!
예제: 프로세스 간의 통신
다음 예제에서는 프로세스 간의 통신을 보여줍니다. 부모 프로세스는 메시지 큐에 데이터를 추가하고, 자식 프로세스는 메시지 큐에서 데이터를 가져옵니다.
#hostingforum.kr
php
use SwooleProcess;
// 부모 프로세스
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} elseif ($pid) {
// 부모 프로세스
$queue = new ProcessPoolWorkerQueue();
// 메시지 큐에 데이터를 추가합니다.
$queue->push('Hello, world!');
// 자식 프로세스 ID를 출력합니다.
echo "Parent PID: $pid
";
// 자식 프로세스를 종료합니다.
pcntl_wait($status);
} else {
// 자식 프로세스
$queue = new ProcessPoolWorkerQueue();
// 메시지 큐에서 데이터를 가져옵니다.
$message = $queue->pop();
echo "Child PID: " . getmypid() . "
";
echo "Received message: $message
";
}
예제: 동시성
다음 예제에서는 동시성에 대한 예제를 보여줍니다. 여러 프로세스가 동시에 메시지 큐에 데이터를 추가하고, 다른 프로세스가 메시지 큐에서 데이터를 가져옵니다.
#hostingforum.kr
php
use SwooleProcess;
// 메시지 큐를 생성합니다.
$queue = new ProcessPoolWorkerQueue();
// 프로세스 5개를 생성합니다.
for ($i = 0; $i < 5; $i++) {
$pid = pcntl_fork();
if ($pid == -1) {
die('could not fork');
} elseif ($pid) {
// 부모 프로세스
// 메시지 큐에 데이터를 추가합니다.
$queue->push("Process $i");
} else {
// 자식 프로세스
// 메시지 큐에서 데이터를 가져옵니다.
$message = $queue->pop();
echo "Received message: $message
";
}
}
이 예제에서는 5개의 프로세스가 동시에 메시지 큐에 데이터를 추가하고, 다른 프로세스가 메시지 큐에서 데이터를 가져옵니다. 결과적으로, 5개의 프로세스가 동시에 메시지 큐에 데이터를 추가하고, 다른 프로세스가 메시지 큐에서 데이터를 가져옵니다.
-
- 나우호스팅 @pcs8404
-
호스팅포럼 화이팅!
댓글목록
등록된 댓글이 없습니다.