Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá pessoal,
Eu e uns amigos desenvolvemos um game online de manager de futebol, estilo Top Eleven, mas estamos com problema em uma coisa. As partidas são simuladas da seguinte forma: site.com/sistema/simular-partida.php?id=999&acao=simular
O get acao faz rodar o script que temos de simulação de jogo e salva as informações dos dois times nos respectivos bancos. Mas aí tem um porém, isso só acontece se um dos jogadores der o "Play", e se os dois jogadores não jogar, a partida não acontece.
Como posso fazer para rodar centenas de partidas todos os dias as 15h com cron?
Lembrando que cada partida tem um id diferente, sei fazer crons pra 1 partida somente. Tem como eu criar um arquivo (partida-cron.php), e mandar rodar todos os dias as 15h, e nesse arquivo ter algum comando que rode todas as partidas?
Preciso urgente! Obrigado á todos desde já!
Sim as IDs estão tudo no banco, só consultar e usar um WHILE.
Mas como usaria o file_get_contents? Pelo que pesquisei ele pega informações da página, teria algum exemplo prático?
Obrigado pela atenção!
Não entendo o motivo de usar cURL , ou file_get_contents ainda mais se a chamada é feita via GET (?id=)
A duvida duvida inicial era:
>
Como posso fazer para rodar centenas de partidas todos os dias as 15h com cron?
Nesse caso é só agendar a tarefa.....
Estamos falando de uma hospedagem compartilhada?
Ex: Kinghost, HostGator, Locaweb?
Um Servidor caseiro Linux ?
Se qualquer uma das respostas acima for verdade é simples.
Agenda a tarefa para executar todos os dias as 15h...
http://www.infowester.com/linuxcron.php
https://www.vivaolinux.com.br/artigo/Usando-cron-e-crontab-para-agendar-tarefas
Obs: Windows Server também possui esse serviço.
Resumo:
Faça seu script inicial partida-cron.php e chame ele de x em x tempo via cron...
>
Sim as IDs estão tudo no banco, só consultar e usar um WHILE.
Mas como usaria o file_get_contents? Pelo que pesquisei ele pega informações da página, teria algum exemplo prático?
Obrigado pela atenção!
Vamos pensar juntos, o que file_get_contents/cURL fazem? Uma requisição a uma página? Correto, essa requisição funcionaria como o usuário que acessa a página para "iniciar" a partida.
Não entendo o motivo de usar cURL , ou file_get_contents ainda mais se a chamada é feita via GET (?id=)
É só pensar, o usuário disse que é necessário acessar uma determinada URL para que aconteça o esperado, essa URL depende de determinados parâmetros, neste caso agendar o script não vai funcionar, a menos que ele altere o script para que o mesmo trabalhe quando o usuário acessa e quando o cron acessa, pois existirão 2 situações diferentes.
Citei o cURL pois em muitos hosts file_get_contents não permite requisições em URL externas, lembrando que se ele usar o file_get_contents sem passar URL completa (e mesmo que seja a do próprio servidor é considerada externa) o que será resgatado é o conteúdo do arquivo, já se for passado a URL completa (como no navegador) ai será retornado o arquivo após a execução. Lembrando que cURL também não está ligado a usar ou não GET/POST, cURL por si só é algo muito mas avançado e inclusive preferível em relação ao file_get_contents (neste contexto, análise minha).
O que estou querendo evitar aqui é que ele duplique a ação existente no arquivo que já funciona, pois isso acabará resultando em trabalho dobrado quando ele quiser adicionar funcionalidades (óbvio, estou assumindo que o sistema não levou em consideração isto também).
Exatamente @ESerra, a função precisa de que alguém acesse a URL pra que ela aconteça. Digamos que temos 500 partidas todos os dias, imagina fazer isso manualmente? kkkk
Alguém tem um exemplo de usar essa função do cURL citado? Pra mim ter uma base e pesquisar mais a fundo...
*Meu servidor é compartilhado (WebLink).
Obrigado!
>
função precisa de que alguém acesse a URL pra que ela aconteça
e o cron não faz exatamente uma chamada HTTP?? Xapralá....
https://www.weblink.com.br/hospedagem
->Cron Jobs (presente em todos os planos)
Alguém tem um exemplo de usar essa função do cURL citado? Pra mim ter uma base e pesquisar mais a fundo...
http://php.net/manual/pt_BR/book.curl.php
http://blog.thiagobelem.net/tutorial-basico-de-curl-instalacao-configuracao-e-uso
Você pode usar cURL ou file_get_contents para realizar requisições à URL:
site.com/sistema/simular-partida.php?id=999&acao=simular
Acredito que os IDs estejam gravados no BD, então você pode fazer uma consulta para pegar os IDs e dentro do laço fazer a requisição.