You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			35 lines
		
	
	
		
			684 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			684 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| use Swoole\Timer;
 | |
| use Swoole\Process;
 | |
| use Swoole\Channel;
 | |
| 
 | |
| $chan = new Channel(1024 * 256);
 | |
| 
 | |
| $worker_num = 4;
 | |
| $workers = array();
 | |
| 
 | |
| for ($i = 0; $i < $worker_num; $i++)
 | |
| {
 | |
|     $process = new Process(function ($worker) use ($chan, $i)
 | |
|     {
 | |
|         while (true)
 | |
|         {
 | |
|             $data = $chan->pop();
 | |
|             if (empty($data))
 | |
|             {
 | |
|                 usleep(200000);
 | |
|                 continue;
 | |
|             }
 | |
|             echo "worker#$i\t$data\n";
 | |
|         }
 | |
|     }, false);
 | |
|     $process->id = $i;
 | |
|     $pid = $process->start();
 | |
|     $workers[$pid] = $process;
 | |
| }
 | |
| 
 | |
| Timer::tick(2000, function () use ($chan)
 | |
| {
 | |
|     static $index = 0;
 | |
|     $chan->push("hello-" . $index++);
 | |
| }); |