J'utilise des travailleurs web pour effectuer un travail intensif au niveau du processeur, mais j'ai besoin que le travailleur réponde aux messages du script parent pendant que le travailleur est encore en cours de traitement.
Cependant, le travailleur ne répondra pas aux messages tant qu'il est bloqué dans une boucle de traitement, et je n'ai pas trouvé de moyen d'interroger la file d'attente des messages. Il semble donc que la seule solution soit d'interrompre le traitement à un certain intervalle pour permettre à tous les messages de la file d'attente d'être traités.
Les options évidentes sont d'utiliser un timer (par exemple avec setInterval), mais j'ai lu que le délai minimum entre les déclenchements est assez long ( http://ajaxian.com/archives/settimeout-delay ), ce qui est regrettable car cela ralentira considérablement le traitement.
Qu'en pensent les autres ? Je vais essayer de faire en sorte que le travailleur dispatche onmessage
à lui-même à la fin de chaque onmessage
et donc de mettre en œuvre une étape de la boucle de traitement par événement reçu de lui-même, mais je voulais juste voir si quelqu'un avait des idées à ce sujet.
Merci,