Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Loop PHP agindo como cronjob [garantir apenas uma instância em execução]


A maneira mais simples de garantir que apenas uma cópia do seu script esteja em execução é usar flock() para obter um bloqueio de arquivo. Por exemplo:

Então, basicamente, você teria um arquivo fictício configurado onde seu script, ao iniciar, tenta adquirir um bloqueio. Se for bem-sucedido, ele é executado. Se não, ele sai. Dessa forma, apenas uma cópia do seu script pode ser executada por vez.

Observação: flock() é o que se chama de consultoria lock, o que significa que só funciona se você usá-lo. Portanto, isso impedirá que seu próprio script seja executado várias vezes, mas não fará nada sobre nenhum outro script, o que parece bom em sua situação.