Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Paulo (Maringá)

Cronômetro em PHP

Recommended Posts

Olá pessoal,

 

Estou com um problema e então resolvi postá-lo aqui e ver o seu os amigos do forum podem me dar uma ajuda, afinal, várias cabeças pensando é melhor que uma e com a colaboração de vocês, vamos chegar a um resultado positivo.

 

Estou trabalhando no desenvolvimento de site de leilão, destes com cronômetro de 30 segundos, tipo este aqui www.mukirana.com. Mas o problema é o seguinte, da forma como desenvolvi o cronômetro, funciona perfeitamente, mas ocasiona muito "delay", levando até o travamento do servidor, conforme o numero de usuário participando do leilão vai aumentando, pois a dedução do cronômetro é feita da seguinte forma: Imagine que temos no momento 20 pessoas participando de um leilão, então serão 20 usuário enviando requisições ao servidor para obter o cronômetro, o status, etc, o andamento do leilão. Essa requisições são feitas de 1 em 1 segundo, ou seja, 20 requisições por segundo, e é aí que está o problema.

 

A cada requisição enviada, eu faço um select e pego o segundo atual do cronômetro, e o timestamp em que ele foi registrado, se essa consulta que estiver sendo feita tiver o timestamp maior que o registrado, eu faço a dedução do cronometro em 1 segundo e gravo no banco com o timestamp atual. Dessa forma, a próxima requisição que vier já será igual e não irá deduzir o cronometro, deixando para fazer isso somente no próximo segundo, ou seja, na próxima requisição, e assim por diante.

 

Veja que foram 20 consultas ao banco em 1 segundo, e apenas uma deduziu o cronômetro. Com base nisso, gostaria de saber se existe alguma forma de essa dedução do cronômetro seja feita de forma automática?, de forma que não dependa dos usuários? Desta forma, essa funcionalidade faria a dedução do cronômetro e as requisições dos usuários seriam apenas para pegar o valor atual do cronômetro, reduzindo drasticamente o número de consultas ao banco de dados.

 

Algo como se fosse uma crontab, que executa sem a necessidade de intervenção de usuário algum, basta programá-la e pronto. Mas o mínimo da crontab é de 1 em 1 minuto e eu preciso que seja segundo em segundo, enquanto o leilão estiver em andamento.

 

Como fazer o cronômetro deduzir sem ação dos usuários? algum comando, configuração do servidor, enfim...

Fico muito agradecido pelo ajuda...

 

 

Grande abraço

Paulo

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara, li mais nao sei se entendi muito bem não..

 

tem como você mostrar o processo na pratica?

 

tipo:

 

cliente entra no leilao -> (SELECT BLABLABLA FROM balabal)

 

cliente envia lance - > (UPDATE BLABLABLA FROM balabal)

Compartilhar este post


Link para o post
Compartilhar em outros sites

Essa requisições são feitas de 1 em 1 segundo, ou seja, 20 requisições por segundo, e é aí que está o problema.

Como desenvolveu algo do tipo? Essa proposição é absurda. Estude padrões de projeto Ajax.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.