Ich möchte einen Windows-Dienst, der einen Remote-Encoding-Dienst (wie Encoding.com, ZENCoder, etc.) zum Hochladen von Videodateien für die Kodierung verwenden, erstellen, laden Sie sie nach dem Kodierungsprozess ist vervollständigen und verarbeiten sie.Design: Queue Management Frage (C#)
Um dies zu tun, habe ich über verschiedene Warteschlangen nachgedacht, eine für die Bearbeitung von gerade wartenden Dateien, eine für hochgeladene Dateien, eine für Dateien, die auf die Kodierung warten und eine weitere für das Herunterladen. Jede Warteschlange hat eine Beschränkung, zum Beispiel können nur 5 Dateien zum Codieren zu einer bestimmten Zeit hochgeladen werden. Die Warteschlangen müssen sichtbar sein und in der Lage sein, nach einem Absturz wieder auferstehen zu können - im Moment tun wir das, indem wir die Warteschlange in eine SQL-Tabelle schreiben und die Anzahl der Elemente in einer separaten Tabelle verwalten.
Ich möchte auch, dass die Warteschlangen unabhängig voneinander im Hintergrund ausgeführt werden, aber im Verlauf des Prozesses Dateien von einer Warteschlange in eine andere übertragen können.
Mein größtes Fragezeichen ist, wie man die Warteschlangen erstellt und verwaltet und weniger die Anzahl der Elemente in jeder Warteschlange beschränkt.
Ich bin nicht sicher, was der richtige Ansatz dafür ist und würde jede Hilfe wirklich schätzen.
Danke!
Danke, es ist hilfreich, aber meine Frage war, mehr auf die Verwaltung von separaten Warteschlangen zu zielen. Dein Blogpost war nützlich. Vielen Dank! – Nir
Ich stimme Fredrik zu. Wenn Sie vier Warteschlangen erstellen und jeder (oder einer ähnlichen Anzahl von Threads) einen Thread zuweisen, ist es möglich, dass eine langsame Warteschlange (eine Warteschlange, die für einen lang andauernden Prozess verantwortlich ist) Ihren gesamten Prozess verlangsamen würde, da diese Warteschlange ausgelastet ist aber die Threads in den anderen Warteschlangen sitzen und tun nichts.In jedem Fall könnte die Feinabstimmung dieser Thread-Nummern schwierig sein. – Aliostad
Wie sich herausstellte, war der Blogbeitrag sehr hilfreich. Danke vielmals! – Nir