AB
Chamar classe/função sem aguardar retorno
Boa Tarde a todos, no Adianti tem como eu chamar uma função que ira disparar varios e-mails e não ficar aguardando o retorno?, como uma thread por exemplo?
Se sim, alguem tem algum material sobre o assunto para me ajudar?
Obrigado
Se sim, alguem tem algum material sobre o assunto para me ajudar?
Obrigado
Através do shell_exec do PHP é possível rodar processos em background.
Bom Dia, e obrigado pelo retorno Romário, mas não seria apenas rodar em background, mas não aguardar o retorno, rodar independente, eu tentei usar o shell_exec, mas o programa chamador fica parado aguardando retorno.
java -jar "java.jar" parametro1 parametro2 > /dev/null &
esse trecho "> /dev/null &" faz com que o script rode em background.
stackoverflow.com/questions/1019867/is-there-a-way-to-use-shell-exec
stackoverflow.com/questions/10472670/shell-exec-not-running-in-backg
Romário, o problema não é rodar em background e sim o programa chamador não ficar esperando retorno, em java tambem uso igual vc postou, mas mesmo assim o programa chamador fica parado, ele nao segue em frente. Mas obrigado mesmo assim, vou ler sobre o assunto nos links que passou, de repente passei batido em algo.
Agostinho, talvez que tenha passado batido em algo mesmo, pois no PHP utilizo a mesma sintaxe chamando o shell_exec para executar algum programa em JAVA ou PHP e o mesmo não aguarda o retorno.
Executando como abaixo, ele ainda aguarda o final da execução do processo, mesmo liberando o sistema para continuar com outros controles interagindo, mas o que vem logo abaixo só executa quando o comando retorna.
tais rodando esse processo em ambiente Linux?
Sim, em ambiente linux CentOS 6.8 64 bits
Tenta executar o shell_exec sem invocar o cmd.php e sim um rotina qualquer... pode ser até um outro projeto a parte... chegou a simular algo parecido?
SIm, tentei, o problema ta em rodar no adianti apenas, este que to tentando rodar é um SERVICE, nele tem comandos e acesso a banco de dados que fazem parte do projeto, por esse motivo to usando o cmd.php como o tutorial que o pablo fez, e a principio roda, mas prende o chamador. Rodando em PHP puro funciona 100%, mas dai perco as funcionalidade do adianti.
Entendi, de momento não faço ideia porque no Adiante a requisição está aguardando retorno... Acredito que o Pablo poderia nos ajudar nessa questão.
O Pablo respondeu em outra pergunta do fórum uma forma de com o Cron do linux executar métodos das suas classes do seu sistema. Isso não ajuda?
Bom Dia Alisson, o cron não resolveria porque preciso que a aplicação dispare o evento, mas hoje to usnado o cron que roda a cada 1 minuto para contornar por enquanto até eu achar outra forma, infelizmente devido a correira isso ta ficando pra tras, Mas retorno a ele assim que der uma folga.
vi em outro site esse comentário:
https://groups.google.com/forum/#!topic/listaphp/h1OjBrSUj4k
Galera eu descobri uma forma de faser o que eu queria, assim eu consigo
faser com que o PHP execute um outro script e não aguarde seu retorno,
então eu posso usar um arquivo de pipe para poder verificar se o arquivo
foi executado ou não.