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();
 |