Avaliar este artigo :
Este artigo foi útil para si ?
Sim
Não
Vous avez noté 0 étoile(s)
Sommaire
Procédure
O objetivo de um cron job é executar automaticamente um script, um comando ou um programa em horários definidos.
Com o"LWS cron job", pode programar um script no seu site para ser executado em horários diferentes. Por exemplo, uma vez por semana, uma vez por dia, no dia 8 de cada mês, etc.
É aplicado um tempo limite de 240s a estas tarefas, o que significa que se o seu script demorar mais de 4 minutos a ser executado, será automaticamente encerrado após 4 minutos.
1. Aceda à ferramenta Tarefa Cron
Primeiro, ligue-se ao seu painel de cliente LWS
Em seguida, aceda à gestão do serviço para o qual pretende criar uma tarefa cron.
Uma vez na gestão do seu serviço, procure o bloco "Database & PHP" e clique em "Cron Tasks".
2. Configurar a frequência do cron job
A primeira coisa a configurar para o seu cron job é a sua periodicidade.
O LWS oferece uma série de pré-definições que lhe permitem configurar isto com apenas 1 clique.
Para isso, basta utilizar a primeira lista no topo do formulário e selecionar um dos parâmetros propostos. Os campos serão automaticamente preenchidos de acordo com a periodicidade indicada na lista que seleccionou.
Se a periodicidade que pretende configurar não for proposta nesta primeira lista, não se preocupe, podemos configurar cada elemento.
Para cada elemento (minutos, horas, dias, etc.), pode introduzir os valores manualmente ou utilizar o campo de lista à direita de cada campo.
Assim, se, por exemplo, quiser que a minha tarefa comece todos os dias às 12:27, só tenho de selecionar o número 27 na lista anexa ao campo dos minutos e selecionar 12:00 pm na lista anexa ao campo das horas.
Dicas / Conselhos
3. Configurar o campo de comando
Existem três formas de chamar o seu script através da ferramenta Cron Task:
A diferença entre estas três opções reside principalmente na forma como executam o seu script.
Uma chamada Wget ou Curl utiliza o protocolo HTTP, o que significa que estará sujeita às configurações e restrições do Apache, como o tempo limite, que pode ser relativamente curto.
A chamada PHP, por outro lado, estará livre das limitações que já discutimos com os outros dois métodos. Pense na chamada PHP como se estivesse a passar por uma ligação SSH.
Por isso, pode perguntar-se qual o método a escolher para configurar a sua tarefa Cron. A minha resposta seria que não existem diferenças reais nos scripts básicos que são executados rapidamente. No entanto, se a sua tarefa CRON for bastante grande, com muitas acções executadas e, por conseguinte, um tempo de execução ligeiramente superior, o método mais adequado será uma chamada PHP. Ao contrário do Curl ou do Wget, o tempo limite será mais longo (4 min).
Vamos ver como configurar um cron job para cada uma das chamadas mencionadas acima. Tomaremos como exemplo um site simples que chama um script de raiz.
Chamada cURL
Numa chamada curl utilizando o protocolo HTTP, chamamos simplesmente o URL para o nosso ficheiro da seguinte forma
curl https://www.mon-domaine.fr/cron.php
Podemos também precisar de enviar parâmetros para o nosso script. Para o fazer, basta adicioná-los da seguinte forma:
curl -d "param1=value1¶m2=value2" https://www.mon-domaine.fr/cron.php
Podemos então recuperar estes valores de parâmetros no código do nosso script POST.
Chamada Wget
Durante uma chamada Wget, que também utiliza o protocolo HTTP, tal como na chamada cURL, também chamamos o URL do nosso script. Isto dará :
wget "https://www.mon-domaine.fr/cron.php"
Se precisarmos de passar parâmetros ao script, com o Wget não teremos outra opção senão passar os parâmetros em GET. Aqui está como escrever o comando:
wget "https://www.mon-domaine.fr/cron.php?param1=value1¶m2=value2"
No script, podemos obter estes dois parâmetros utilizando GET.
Chamada PHP
No caso de um site simples, imaginemos que o ficheiro que contém o meu script se chama cron.php
Tudo o que precisa de fazer é introduzir o seguinte comando na ferramenta Cron Task:
php /htdocs/cron.php
Aqui, a versão do PHP utilizada para executar o seu script será a 8.0 por defeito.
Se pretender utilizar uma versão específica do PHP, basta modificar ligeiramente a chamada. Por exemplo, se quiser utilizar a versão 7.2 para executar o script, este é o comando chamado :
php72 /htdocs/cron.php
Podemos também precisar de passar um argumento que será depois utilizado no nosso script.
Por exemplo, imaginemos que o objetivo do nosso script é enviar um e-mail com base num critério que definimos, como o aniversário. Podemos, portanto, querer passar este critério na chamada. Eis como o fazer através da linha de comandos :
php72 /htdocs/cron.php type=anniversary
Casos especiais
Existem também casos especiais, dependendo do que utiliza para o seu sítio.
Por exemplo, no caso de um site criado com a framework Cakephp, a configuração da tarefa CRON será um pouco diferente porque será feita através de um comando SHELL chamado pelo sistema da framework.
Imaginemos que temos um site de comércio eletrónico criado com a estrutura Cakephp e que queremos configurar um script que enviará um e-mail ao melhor cliente para lhe oferecer um código promocional.
Vamos criar um comando Cake a que chamaremos SendCP, que conterá o script que gere o que queremos fazer. Eis como vamos configurar a tarefa Cron :
php72 /htdocs/Console/cake.php SendCP
Demoraria muito tempo a dar um exemplo de cada caso, mas com o que foi dado aqui, já tem uma boa base para utilizar a ferramenta de tarefas Cron.
Usando os vários exemplos, sabemos agora como escrever o nosso comando para ;
4. Criar um ficheiro de registo
Vamos agora ver como criar um ficheiro de registo para podermos ver o que aconteceu durante o script chamado pelo Cron.
Para isso, vamos utilizar o exemplo abaixo para o nosso script CRON.
Exemplo de uma função PHP echo para o ficheiro de registo
<?php /* Para não ter que se preocupar com cache */ header("Cache-Control: no-store, no-cache, must-revalidate, max-age=0"); header("Cache-Control: post-check=0, pre-check=0", false); header("Pragma: no-cache"); /* Escreve a data atual no ficheiro, por exemplo: 2023/01/19 12:24:01 */ /* PHP_EOL permite-lhe saltar uma linha no ficheiro */ echo date('Y/m/d h:i:s').PHP_EOL; /* Escreve a frase abaixo no ficheiro de log */ echo 'A gravar o meu Cron'.PHP_EOL.PHP_EOL; ?>
Renderização do ficheiro de registo após o lançamento do script via Cron Job
2023/01/19 02:57:01 Gravando meu Cron 2023/01/19 03:57:01 Gravando meu Cron 2023/01/19 04:57:01 Gravando meu Cron 2023/01/19 05:57:01 Gravando meu Cron 2023/01/19 06:57:01 Gravando meu Cron 2023/01/19 07:57:01 Gravando meu Cron 2023/01/19 08:57:01 Gravando meu Cron
O que você coloca no seu arquivo de log dependerá de você e do que você quer acompanhar no seu script. Por exemplo, pode ser uma lista de acções com o resultado de cada uma.
Exemplo de uma chamada cURL com retorno num ficheiro de registo
Para uma chamada cURL, aqui está o comando a ser inserido no campo "Command":
curl https://www.mon-domaine.fr/cron.php >> /htdocs/logs/cron_curl.log
Neste exemplo, o feedback de escrita (echo PHP) será enviado para o ficheiro cron_curl.log na pasta logs. Se o ficheiro ou pasta não existir, será criado automaticamente.
Exemplo de uma chamada ao wget com feedback num ficheiro de registo
Para uma chamada ao Wget, eis o comando a utilizar:
wget -O - -q https://www.mon-domaine.fr/cron.php >> /htdocs/logs/cron_wget.log
Neste exemplo, o feedback de escrita (echo PHP) será enviado para o ficheiro cron_wget.log na pasta logs. Se o ficheiro ou pasta não existir, será criado automaticamente.
Exemplo de uma chamada PHP com feedback num ficheiro de registo
Para uma chamada em PHP, eis o comando a utilizar:
php72 /htdocs/cron.php >> /htdocs/logs/cron_php.log
Neste exemplo, o feedback de escrita (echo PHP) será enviado para o ficheiro cron_php.log na pasta logs. Se o ficheiro ou pasta não existir, será criado automaticamente.
Depois de ter criado as suas tarefas cron, pode encontrá-las diretamente na listagem que aparece por baixo do formulário de adição.
Aqui encontrará uma lista com o comando registado, a periodicidade e a opção de eliminar um cron ou de o colocar em pausa.
Avaliar este artigo :
Este artigo foi útil para si ?
Sim
Não
0mn leitura
Multi-domínio - Colocar vários domínios no mesmo serviço de alojamento web
1mn leitura
É possível remover a função anti-spam do RSpamD no alojamento partilhado?
0mn leitura
Como posso ver as mensagens de correio eletrónico enviadas utilizando a função de correio PHP e bloqueadas pelo SPAMASSASSIN?