You've already forked qlg.tsgz.moe
							
							
		
			
				
	
	
		
			44 lines
		
	
	
		
			784 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
		
			784 B
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
| <?php
 | |
| declare(ticks = 1);
 | |
| Swoole\Async::set([
 | |
|     'enable_signalfd' => false,
 | |
| ]);
 | |
| 
 | |
| class FunctionTimeoutException extends RuntimeException
 | |
| {
 | |
|     
 | |
| }
 | |
| 
 | |
| function test()
 | |
| {
 | |
|     sleep(1);
 | |
| }
 | |
| 
 | |
| $serv = new Swoole\Http\Server("127.0.0.1", 9502);
 | |
| 
 | |
| $serv->set(['worker_num' => 1]);
 | |
| 
 | |
| $serv->on('WorkerStart', function($serv, $workerId) {
 | |
|     pcntl_signal(SIGALRM, function () {
 | |
|         Swoole\Process::alarm(-1);
 | |
|         throw new FunctionTimeoutException; 
 | |
|     });
 | |
| });
 | |
| 
 | |
| $serv->on('Request', function($request, $response) {
 | |
|     try
 | |
|     {
 | |
|         Swoole\Process::alarm(100 * 1000);
 | |
|         test();
 | |
|         Swoole\Process::alarm(-1);
 | |
|         $response->end("<h1>Finish</h1>");
 | |
|     }
 | |
|     catch(FunctionTimeoutException $e)
 | |
|     {
 | |
|         $response->end("<h1>Timeout</h1>");
 | |
|     }
 | |
| 
 | |
| });
 | |
| 
 | |
| $serv->start();
 |