J'écris actuellement un petit framework pour les workflows basés sur la demande. L'API est maintenant stable et je travaille à améliorer les tests. Il est facile de montrer que les calculs sont corrects (ce qui est un bon début), cependant, l'intérêt principal du framework est de lancer des sous-tâches en parallèle (si nécessaire et possible).Test de l'exécution simultanée/parallèle
Existe-t-il un moyen de tester automatiquement que deux parties de code différentes fonctionnent de manière parallèle/simultanée? Je préfère ne pas compter sur des mesures de temps d'exécution (accélération).
Le framework est écrit en scala, et repose beaucoup sur Akka Futures.
EDIT:
est un exemple:
val foo = step {
//... defines an arbitrary task
}
// Runs 5 times the code inside step foo
val foos = repeat(5)(foo)
Je voudrais être sûr que le code à l'intérieur foo
est exécuté 5 fois en parallèle.
J'aime l'idée, mais êtes-vous sûr de l'ordre absolu des messages dans la boîte aux lettres d'acteur? – paradigmatic
@paradigmatic: http://akka.io/docs/akka/snapshot/scala/actors.html ne semble rien dire sur la commande, malheureusement, y compris les garanties que je m'attends à ce que toute implémentation d'acteur à fournir. –
Vous pouvez simplement utiliser les horodatages dans les messages, puis alignez les messages sur les horodatages à la fin du test et créez une "chronologie des événements" .. – tuxSlayer