3 votes

Existe-t-il un équivalent Groovy du module Ruby Timeout ?

En Ruby, j'utiliserais le module Timeout, qui exécute un bloc et arrête l'exécution du code si le délai d'attente est dépassé.

require 'timeout'
status = Timeout::timeout(5) {
  # Something that should be interrupted if it takes too much time...
}

Est-ce que Groovy a quelque chose comme ça ?

4voto

tim_yates Points 63521

Il y a le TimedInterrupt annotation mais je ne l'ai pas encore essayé...

J'ai fait un test rapide, et voici (mauvais exemple) :

@groovy.transform.TimedInterrupt( 5L )
def loopy() {
  int i = 0
  try {
    while( true ) {
      i++
    }
  }
  catch( e ) {
    i
  }
}

println loopy()

S'exécute dans la console groovy et affiche le résultat suivant i après 5 secondes.

J'ai compris :

47314150

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X