msgqueue2.php 788 B

123456789101112131415161718192021222324252627282930313233343536
  1. <?php
  2. function callback_function(swoole_process $worker)
  3. {
  4. //echo "Worker: start. PID=".$worker->pid."\n";
  5. //recv data from master
  6. while(true)
  7. {
  8. $recv = $worker->pop();
  9. echo "From Master: $recv\n";
  10. }
  11. sleep(2);
  12. $worker->exit(0);
  13. }
  14. $process = new swoole_process('callback_function', false, false);
  15. $process->useQueue(ftok(__FILE__, 1), 2 | swoole_process::IPC_NOWAIT);
  16. $send_bytes = 0;
  17. foreach(range(1, 10) as $i)
  18. {
  19. $data = str_repeat('A', 65535);
  20. // $data = "hello worker[$i]\n";
  21. $send_bytes += strlen($data);
  22. $process->push($data);
  23. }
  24. $recv_bytes = 0;
  25. $r_data = true;
  26. while($r_data)
  27. {
  28. $r_data = $process->pop();
  29. $recv_bytes += $r_data;
  30. }
  31. echo "send={$send_bytes}, recv=$recv_bytes\n";
  32. var_dump($process->statQueue());