Je veux construire un service Windows qui utilisera un service d'encodage distant (comme encoding.com, zencoder, etc.) pour télécharger des fichiers vidéo pour l'encodage, les télécharger après le processus d'encodage compléter, et les traiter. Pour ce faire, je pensais à avoir différentes files d'attente, une pour gérer les fichiers en attente, une pour les fichiers en cours de chargement, une pour les fichiers en attente d'encodage et une autre pour les télécharger. Chaque file d'attente a une limitation, par exemple seulement 5 fichiers peuvent être téléchargés pour l'encodage à un certain moment. Les files d'attente doivent être visibles et capables de ressusciter suite à un plantage. Actuellement, nous le faisons en écrivant la file d'attente dans une table SQL et en gérant le nombre d'éléments dans une table séparée.Conception: Question de gestion de file d'attente (C#)
Je souhaite également que les files d'attente s'exécutent en arrière-plan, indépendamment les unes des autres, mais en mesure de transférer des fichiers d'une file d'attente à une autre pendant que le processus se poursuit. Mon plus grand point d'interrogation est sur la façon de construire les files d'attente et de les gérer, et moins sur la limitation du nombre d'éléments dans chaque file d'attente.
Je ne sais pas quelle est la bonne approche pour cela et j'apprécierais vraiment toute aide.
Merci!
Merci, c'est utile mais ma question essayait de viser plus à la gestion des files d'attente séparées. Votre article de blog a été utile. Merci! – Nir
Je suis d'accord avec Fredrik. Si vous créez 4 files d'attente et assignez un thread à chaque (ou un nombre similaire de threads), il est possible qu'une file d'attente lente (une file d'attente responsable d'un processus de longue durée) ralentisse l'ensemble du processus puisque cette file est occupée mais les fils dans les autres files d'attente sont assis et ne font rien.Dans tous les cas, affiner ces numéros de fil pourrait être difficile. – Aliostad
En fin de compte, le blog a été extrêmement utile. Merci beaucoup! – Nir