Ent?o, o cron do wordpress ele funciona de maneira diferente, se você for ler a documenta??o deles. Nem toda hospedagem libera acesso ao cron do linux, ent?o o wordpress para contornar essa situa??o fez com que as tarefas cron fossem atualizadas com o carregamento da página por padr?o.
Segue o texto do site do wordpress:
Observa??o:O WP-Cron n?o é executado constantemente como o cron do sistema; ele só é acionado no carregamento da página.
Podem ocorrer demora no agendamento se você agendar uma tarefa para 14h e nenhum carregamento de página ocorrer até 17h.
Ou seja, se o pix expira em 2h mas ninguém acessar sua página depois dessas duas horas nada acontecerá, apenas depois que alguém acessar que o cron do wordpress irá ler as tarefas e consequentemente irá cancelar os pedidos que expiraram.
Se você deseja contornar essa situa??o, e tiver acesso ao cron da sua hospedagem, é possível substituir na própria configura??o do wordpress. Assim quando der exatamente 2h ele irá cancelar. Pois o sistema mesmo vai executar as tarefas sem depender de carregamento de página.
Outra coisa, a tarefa está rodando de 1h em 1h, escolhi 1h para n?o pesar muito a verifica??o. Talvez eu coloque esse tempo para poder alterar em uma próxima atualiza??o.
Ent?o se saiu um pedido ao 12h00, mas a tarefa cron executou 5 minutos antes do 12h00, ou seja, executou 11:55, quando der 12h55, ela executa novamente, porém ainda n?o deu 2h de expira??o, ent?o ela executa 13h55, e por 5 minutos ela n?o vai cancelar o pedido, pois n?o deu 2h de expira??o. Somente quando der 14h55 o pedido será cancelado, nesse caso. com 55h minutos de atraso.
Isso resolve fácil colocando a tarefa a cada 5 minutos, mas por quest?es de otimiza??o acabei colocando de 1h.
Lembrando que 59 minutos de atraso é o maximo que um pedido pode atrasar para ser cancelado automaticamente, isso depende da hora que executou a tarefa cron da ultima vez e a hora que o pedido de pix foi gerado, pode ser que n?o atrase nem 2 minutos.
Acredito que n?o seja problema o máximo de 59 minutos de atraso, o cancelamento n?o interfere na compra do cliente. Pois se o Qr Code já expirou ele n?o vai conseguir pagar mesmo se o pedido ainda n?o foi cancelado.
De qualquer forma se preferir posso fazer um campo que você possa alterar o tempo da tarefa cron.
No seu caso, tenho certeza que n?o houve carregamento de página e por isso n?o cancelou. Mas se eu estiver errado, pe?o que me corrija! Vou liberar o git e te aviso.
Lembrando também que, 59 minutos máximo de atraso é contando que o carregamento da pagina é feito a todo instante ou que você está utilizando o cron do sistema operacional. Se você utilizar o cron padr?o do wordpress e ninguém acessar o site durante 1 dia por exemplo (nem você e nem ninguem acessar o site), ele só vai cancelar depois de 1 dia.
-
This reply was modified 3 years, 1 month ago by marcosgn.