Como tempo limite em mod_perl?

1

Estou procurando uma configuração para todo o servidor para o tempo limite com scripts mod_perl no Apache 2.2, semelhante a max_execution_time no php.

Tempo limite pode ser feito com $SIG{ALRM} mas requer modificação em todo script perl e é incompatível com sleep() .

O Apache tem uma diretiva de configuração TimeOut , mas não tem efeito sobre mod_perl. Com TimeOut 5 , o tempo limite não ocorre para um script de teste que dorme por 10 segundos antes de imprimir qualquer coisa.

O módulo Apache2::ServerRec tem um método timeout() , mas simplesmente obtém / define o valor da variável TimeOut do Apache e, portanto, não tem efeito sobre mod_perl também.

Como isso pode ser feito? Se isso não puder ser feito, qual é a melhor prática para o tempo limite em mod_perl?

    
por netvope 28.03.2011 / 00:26

1 resposta

1

mod_perl não tem, infelizmente, uma maneira de fazer isso. O que faz tem um jeito de implementar tempos limites seu mod_fcgid (via a diretiva FcgidBusyTimeout ). Isso não deve exigir modificações significativas no seu script, a menos que ele faça uso da funcionalidade específica mod_perl .

Uma boa comparação entre mod_perl e mod_fcgid é disponível no StackOverflow , mas se a implementação de timeouts universais for sua exigência, mod_fcgid soa como o único caminho a seguir.

    
por 28.03.2011 / 05:22