Ir para conteúdo
  • 0

Dúvida sobre execução de Threads


0KOOPER

Pergunta

Olá, Recentemente estou desenvolvendo um plugin de banir, ele contará com multi-threads para executar  varias tarefas em uma verificação de segundos, no  caso seria 1 tarefa por player, ele ira executar  um método que retornasse a contagem de dias, horas, minutos e segundos de um player para ser desbanido, queria saber se ao usar esse método eu estaria abusando da memória de forma absurda, e se tem uma forma melhor de verificar o tempo do player gostaria de saber.

Link para o comentário
Compartilhar em outros sites

4 respostass a esta questão

Posts Recomendados

  • 0

Duvida 1

nesse caso eu teria que criar um tipo de contador para cada jogador banido?

 

Duvida 2

pensei em calcular o tempo de desban salvar e executar um verificação de data do servidor com a data salva do desban na config ou no mysql.

Não necessariamente.

 

Salva o long System.getCurrentMillis();+o tempo da punição (que é quando o banimento expirará).

 

Quando o jogador tentar entrar, ou o servidor reiniciar, você verifica se o System.getCurrentMillis(); é maior ou igual (>=) ao long de quando expira, se for é porque já deu o tempo e você tira o banimento.

 

Recomendo a utilização de um cache, para não precisar ficar acessando o MySQL toda hora pra pegar esses dados.

Link para o comentário
Compartilhar em outros sites

  • 0

Se fizer isso na thread principal do bukkit(servidor) sim.

 

Recomendo que utilize Async.

 

E uma outra dica: porque não verifica se o tempo do banimento expirou quando o servidor é ligado/desligado e quando o jogador tenta conectar-se ao servidor?

Se já tiver expirado, é só desbanir o player :)

Assim não precisaria de várias threads para cada usuário banido.

 

 

Talvez isto lhe ajude também.

Link para o comentário
Compartilhar em outros sites

  • 0

Se fizer isso na thread principal do bukkit(servidor) sim.

 

Recomendo que utilize Async.

 

E uma outra dica: porque não verifica se o tempo do banimento expirou quando o servidor é ligado/desligado e quando o jogador tenta conectar-se ao servidor?

Se já tiver expirado, é só desbanir o player :)

Assim não precisaria de várias threads para cada usuário banido.

Duvida 1

nesse caso eu teria que criar um tipo de contador para cada jogador banido?

 

Duvida 2

pensei em calcular o tempo de desban salvar e executar um verificação de data do servidor com a data salva do desban na config ou no mysql , ficaria ruim?.

Editado por SmokeDev
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novos posts.
×
×
  • Criar Novo...