Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

renato augusto tavares

Opção ao Cron Job

Recommended Posts

Olá amigo,

 

Tenho 2 arquivos em PHP que devem ser executados a cada 30 minutos para que eles façam uma rotina para mim, só que toda vez que executo eles via Cron Job eles dão uma serie de erros que se eu acessar via navegador não acontece.

 

Cansei de tentar configurar esse maldito Cron Job a minha dúvida agora é, Como crio um arquivo em PHP ou JS para que atualize acesse essas páginas a cada 30 minutos.

 

Se eles entrarem HTTP://meusite.com.br/cron/cron1.php o script já roda sozinho e faz as devidas verificações.

Tentei com Java Script mais ele requer que eu esteja na pagina, o que eu quero e que tudo isso seja automático, alguém sabe a solução ou pelo menos o rumo a tomar?

 

 

//

 

Postei no Lugar errado alguém mova para PHP ou Java Script por favor

 

//

Compartilhar este post


Link para o post
Compartilhar em outros sites

Renato,

 

E quais são os erros? Poste para que possamos ajudá-lo.

 

Att.,

--

Thiago Jose Lucas

 

O erro e esse para cada consulta no banco de dados

<b>Warning</b>:  simplexml_load_file() [<a href='function.simplexml-load-file'>function.simplexml-load-file</a>]: I/O warning : failed to load external entity "http://meusite.com.br/classes/webservice/?q=PB1518325535BR&f=xml" in <b>/home/rastrea/public_html/cron/EnviaEmail.php</b> on line <b>31</b><br />
Fiz nada <br /><br />

O meu script é esse aqui

 

 

<?php
//Chama todos os includes
include ('../includes/conexao.php');


############################################
// Função para Enviar o email

function EnviaEmail($destinatario, $assunto, $mensagem, $headers ){
$headers = "MIME-Version: 1.1\n";
$headers .= "Content-type: text/plain; charset=iso-8859-1\n";
$headers .= "From: Meu Nome <no_replay@meusite.com.br>\n"; // remetente
$headers .= "Return-Path: Meu site <no_replay@meu site.com.br>\n"; // return-path
$envio = mail("$destinatario", "$assunto", "$mensagem", $headers);

}

###########################################


$sql = mysql_query("SELECT * FROM email");
while ($array_result = mysql_fetch_array($sql)) {
  $id = $array_result["id"];
   $nome = $array_result["nome"];
  $email = $array_result["email"];
  $code =  $array_result["code"];
  $Databanco = $array_result["data"];
  //Faz o XML
  $url = "http-~~-//meusite.com.br/classes/webservice/?q=$code&f=xml";
  $xml = simplexml_load_file($url);
   $indice_ultimo_item = $xml->track->item;
   $conta = count($indice_ultimo_item) - 1;
   $ultimo_item = $xml->track->item[$conta];
   $DataAgora = $ultimo_item->data;
   $link = "http-~~-//meusite.com.br/s.php?code=$code";

   $assunto = "O Status da sua encomenda $code mudou";
   $mensagem = "Bom dia,

A sua encomenda de número $code mudou de status, isso significa que os correios estão levando a sua encomenda para mais perto de sua casa.

Clique neste link aqui $link para saber exatamente em que lugar sua encomenda está agora.

Atenciosamente


--
www.meusite.com.br";


   if($Databanco != $DataAgora){

   EnviaEmail($email, $assunto, $mensagem, $headers );

   $query = mysql_query("UPDATE email SET data='$DataAgora' WHERE id='$id' ");     
   }
   else{
   echo "Fiz nada <br />";
   } 

   }

?>

 

 

A parada e que se eu acessar o script diretamente ele roda beleza + se eu acessar ele via cron, eu recebo esses erros por email e também ele envia o email para todo mundo do banco de dados.

 

eu faço o cron pelo Cpanel ele fica assim

0  	*  	*  	*  	*  	 php /home/meuUser/www/cron/EnviaEmail.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso existe?

 

$url = "http://meusite.com.br/classes/webservice/?q=$code&f=xml";
$xml = simplexml_load_file($url);

Outra coisa... Warning não é erro.

 

Outra coisa que você pode tentar é, ao invéz de executar o script php diretamente, fazer algo como:

0       *       *       *       *        wget http://www.seusite.com.br/cron/EnviaEmail.php

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso existe?

 

$url = "http://meusite.com.br/classes/webservice/?q=$code&f=xml";
$xml = simplexml_load_file($url);

Outra coisa... Warning não é erro.

 

Outra coisa que você pode tentar é, ao invéz de executar o script php diretamente, fazer algo como:

0       *       *       *       *        wget http://www.seusite.com.br/cron/EnviaEmail.php

Sim os arquivos existem e se eu acessar eles via navegador tudo da certo, eu usei o cron que voce me passou so que ele ta salvando meu arquivo EnviaEmail.php na raiz do servidor ¬¬

 

como mudo pelo menos o lugar que ele tem que salvar o arquivo, se é que tem como mudar

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na verdade ele não precisa salvar o arquivo, você pode fazer o comando com estes parâmetros.

wget -q -O /dev/null http://www.seusite.com.br/cron/EnviaEmail.php

-q = quiet, não emitir mensagens;

-O = output, seria o arquivo de destino, mas neste caso, supondo que o servidor seja um Linux, o conteúdo esta sendo direcionado para um dispositivo especial null;

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.