Sim. Não. Talvez.
A terminação periódica é uma espada de dois gumes. Você vai ser atingido com uma vantagem ou outra, e qual é o menor de dois males depende da sua situação.
Uma vantagem é a confiabilidade: se você forçar o programa a terminar de maneira aleatória (ou previsível) e de maneira ordenada, você pode estar preparado para o evento e lidar com ele. Você pode garantir que o processo será encerrado quando não estiver ocupado fazendo algo útil. Isso também garante que os bugs que se manifestam além do tempo de execução sancionado não levantem suas cabeças feias na produção, o que é uma coisa boa. O Apache HTTPD tem uma configuração que permite ajustar quantas solicitações um processo filho (ou encadeamento em versões mais recentes) exibirá antes de terminar.
A outra vantagem também é a confiabilidade: se você não permitir que o programa seja executado por muito tempo, nunca encontrará bugs que se manifestem com o tempo. Quando você finalmente se depara com um desses bugs, é muito mais provável que o programa retorne uma resposta errada ou deixe de retornar um. Pior, se você executar muitos segmentos do mesmo trabalho, um bug induzido por tempo ou contagem pode afetar um grande número de tarefas de uma só vez e resultar em uma viagem às 3 horas da manhã no escritório.
Em uma configuração em que você executa muitos dos mesmos segmentos (por exemplo, em um servidor da Web), a solução prática é adotar uma abordagem mista que resulte em uma taxa de falha aceitável. Se você executar 100 threads, a execução de uma proporção curta / longa de 99: 1 significa que apenas um exibirá bugs de longo prazo, enquanto os outros continuarão fazendo o que quer que seja, sem falhar. Compare isso com a execução de 100% de duração, em que você corre um risco muito maior de ter todos os threads com falha ao mesmo tempo.
Onde você tem um único encadeamento, provavelmente é melhor deixá-lo rodar e falhar, porque o tempo morto durante uma reinicialização pode resultar em latência indesejada quando há trabalho real a ser feito com sucesso.
Em ambos os casos, é importante que haja algo supervisionando os processos para que eles possam ser reiniciados imediatamente. Além disso, não há nenhuma lei que diga que suas decisões iniciais sobre quanto tempo um processo deve ser executado precisam ser expressas em pedra. A coleta de dados operacionais ajudará você a ajustar seu sistema para manter as falhas em um nível aceitável.
Eu recomendaria contra a finalização aleatória, porque isso dificulta a detecção de bugs relacionados ao tempo. Chaos Monkey faz isso para garantir que o software de supervisão funcione, o que é um problema ligeiramente diferente.