Sto costruendo un nuovo generatore di report per il nostro sistema di sondaggi interno. (No, non posso utilizzare alcun software disponibile in commercio, sono rapporti altamente personalizzati.)
Voglio utilizzare Topshelf per ospitare il generatore come servizio. Il nostro generatore corrente è un'applicazione desktop e richiede che un utente abbia effettuato l'accesso sul server. Voglio provare a evitare questo.
La generazione di report in sé è molto semplice e di natura procedurale. Ma il server è più che in grado di generare più report contemporaneamente. Voglio che il servizio faccia ruotare alcune istanze del generatore contemporaneamente, è questo qualcosa che utilizzerei per la libreria parallela Task? Un po 'di pseudo sarebbe un po' come questo:
poller.Poll(order => { // blocking(?) call to listen for new report-orders
var gen = new Generator(order);
gen.process(); // generates report
set gen = null; // or something else to destroy the generator for that report
});
Qualcuno ha qualche suggerimento su come farlo?