Como agendar a execução de scripts automaticamente em servidores sem acesso ao cron (crontab)

Fernando Valler 22/01/2020 Útil, Servidores


Em alguns projetos precisamos que parte do código ou uma rotina seja executado de forma automática e de tempos em tempos, de cinco em cinco minutos, meia em meia hora, etc.

O problema é que quando o projeto está em uma hospedagem compartilhadas quase sempre não temos acesso direto ao serviço cron (crontab), o agendador de tarefas no Linux, ou quando fornecido é um serviço que tem um custo mensal e não queria ter um custo para algo simples ou mesmo para meus projetos de testes.

Uma solução que encontrei foi fazer uso do serviço de monitoramento de sites, existem vários sistemas na web que oferecem esse serviço, você pode programar para em intervalos de tempo verificar se seu site ou sistema está online, caso não esteja ele envia uma mensagem para você avisando que o site ou serviço está fora do ar. O detalhe aqui é que podemos usar esse tipo de serviço para executar nosso código.

Atualmente estou usando o serviço https://uptimerobot.com/ você pode fazer o cadastro gratuitamente, ele tem planos pagos e tem um plano free, que uso satisfatoriamente em meus projetos a alguns anos (+3).

Você pode criar o monitoramento apontando para a url do seu script que será executada no intervalo de tempo definido, no plano free o menor intervalo é de 5 mim.

Uma observação é que ao informar a URL verifique se ela não está dentro de uma área protegida por senha, pois nesse caso o uptimerobot não vai conseguir rodar seu script. Você deve deixar a URL aberta para ser acessado ou criar uma chave se segurança e informar a chave junto com a URL do script garantindo que só quem tem a chave pode executar.

https://meusite.com/meu-script.php?key=18293810238021831

Assim mesmo que alguém acesso diretamente o arquivo meu-script.php ele não será executado pois precisar ter a chave e ela ser válida. Você de implementar essa validação antes da execução do seu código.

 

Exempo da criação de um monitoramento.

 

Serviço: https://uptimerobot.com/


Fernando Valler - Programador Web
Fernando Valler

Sou programador web, motivado por desafios e sempre buscando aprender algo novo. Aqui você pode encontrar alguns projetos.