개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.05.18 12:27

SwooleServer::addProcess 사용에 대한 질문

목록
  • JetpackCompose마… 19시간 전 2025.05.18 12:27 새글
  • 3
    1
제가 SwooleServer::addProcess를 사용하여 프로세스를 추가했는데,
이 프로세스가 다른 프로세스와 통신할 수 있는 방법을 알고 싶습니다.

SwooleServer::addProcess를 사용하여 추가한 프로세스에서,
다른 프로세스와 통신할 수 있는 방법을 알려주세요.

    댓글목록

    profile_image
    나우호스팅  19시간 전



    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

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 20,473건 / 6 페이지

검색

게시물 검색