Lançado Adianti Framework 7.6!
Clique aqui para saber mais
Executar uma classe sem login (para Cron Job) Boa Tarde Pessoal! Bom, coloquei minha aplicação na KingHost e está tudo funcionando certinho. Porém, tenho um script (control) que será necessário executar todos os dias em um determinado horário. Para isso contratei o serviço de Cron Job da KingHost..Ao testar percebi que, para funcionar é necessário logar primeiro (é claro!). Neste caso, como poderia executar esta classe sem ser nece...
AF
Executar uma classe sem login (para Cron Job)  
Fechado
Boa Tarde Pessoal! Bom, coloquei minha aplicação na KingHost e está tudo funcionando certinho. Porém, tenho um script (control) que será necessário executar todos os dias em um determinado horário. Para isso contratei o serviço de Cron Job da KingHost..Ao testar percebi que, para funcionar é necessário logar primeiro (é claro!). Neste caso, como poderia executar esta classe sem ser necessário o login? Agradeço!

Pacotão Dominando o Adianti Framework 7
O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado! Versão 7.4


Dominando o Adianti 7 Quero me inscrever agora!

Comentários (9)


JD

Se tiver usando o Template 2, abra o arquivo engine.php, e adicione a condição para aceitar sua classe sem estár logado.
Exemplo:

  1. <?php
  2. //if logado
  3. if( isset($programs[$class]) )
  4.                 {
  5.                     parent::run($debug);
  6.                 }
  7. //if não logado mas chamando determinada classe
  8. else if($class == '<nome_da_sua_classe>')
  9.                 {
  10.                     parent::run($debug);
  11.                 }
  12. else
  13.                 {
  14.                     new TMessage('error'_t('Permission denied') );
  15.                 }
  16. ?>


Espero ter ajudado.
JD

Amigo passei uma condição errada kkkk
teria que ser assim:

  1. <?php
  2. if (TSession::getValue('logged')) 
  3. {
  4. //logado
  5. }
  6. else if($class == '<nome_da_sua_classe>')
  7.  {
  8.            //não logado mas chamando determinada classe
  9.             parent::run($debug);
  10.  }
  11. else
  12. {
  13.         new TMessage('error'_t('Permission denied'), new TAction(array('LoginForm','onLogout')) );
  14. }
  15. ?>
FC

Jefferson acho que não é isso que ele precisa e a permissão é no index primeiro depois no engine.

Aurélio o caminho talvez seja criar uma classe na raiz da sua app incluir o init.php e rodar essa página fora do index, visto que vai estar no cron job ta pagando 5 reais por mês para isso no kinghost?
AF

Olá Pessoal!
Bom, ainda não testei a dica do Jheferson, assim que testar posto aqui se deu certo..Em resumo eu preciso executar uma classe sem ter que informar login e senha...pois será executado automaticamente via cron job. Isso mesmo Felipe Cortez, estou pagando 5 contos por mes para isso..Já que não tenho outra solução de execução automática em determinado período e dias.
FC

Se tiver um PC que fica ligado direto pode agendar ele para executar uma URL tenho algo parecido feito pelo agendador de tarefas do ruimwindos uffu 5 reais a menos.

PD

Já leu isso?
www.adianti.com.br/forum/pt/view_1128?executando-metodos-do-adianti-
PD

Deem uma lida no artigo, não é necessário mexer no index, engine, ok?

Abraço!
AF

Olá Pablo! Li o artigo mas fiquei na dúvida de como posso executar o service. Devo criar esta pasta chamada service em app? E basta eu executar a classe service para executar o script desejado?
Agradeço!
PD

Sim,

Basta criar a classe em app/service

E para executar, pasta programar a chamada de:
php5 cmd.php "class=CustomerService&method=printBetween&from=3&to=4"

Onde CustomerService é a classe, printBetween() é o método, o restante são parâmetros.

Att,