Sto creando un generatore di report, come dovrei eseguirlo?

0

Quindi ho avviato un progetto per generare report per il nostro sistema. Questi sono rapporti che forniamo ai nostri clienti finali e sono così specializzati che nessun sistema esistente può generarli. Questo non è il problema, tuttavia, il generatore funziona perfettamente.

Per semplicità ho basato su una soluzione ASP.NET che genera HTML che spingo attraverso phantomjs per generare PDF del risultato. Anche questo funziona bene. Tuttavia, questa è un'operazione one-shot. In questo momento ho un file .BAT che esegue phantomjs con un URL specifico, e questo genera il mio PDF. Tuttavia, ho bisogno di creare un qualche tipo di sistema di coda, quindi la generazione di rapporti è automatica quando vengono ordinati.

Il sistema di ordinazione fa parte di un sistema legacy che è programmato per essere rinnovato, ma "Not Right Now" (TM). Quindi in questo momento gli ordini vengono inseriti in una tabella SQL, con una colonna "stato" che dice se è generata o meno. Quello che sto cercando sono le idee per un sistema che esegua questi report, e forse anche in futuro cambierà facilmente per un sistema "reale" basato sulla coda (RabbitMQ o simile).

Non sono bloccato in nessun linguaggio / framework finché è stabile su Windows e può comunicare con SQL Server. (So meglio di C # e JS). Stavo pensando di farcela con C #, ma non sono abbastanza sicuro della robustezza del bombardamento verso i phantomjs .. (non sono sicuro della robustezza di eseguire il bombardamento su qualcosa come un'operazione aziendale critica;))

    
posta Christian Wattengård 10.02.2014 - 17:32
fonte

1 risposta

1

Right now I have a .BAT-file that runs phantomjs with a specific url

Bene, se questa è la tua preoccupazione, perché non evitare questo file batch ed eseguire "phantomjs" attraverso Process.Start ? La robustezza di tale soluzione dipenderà principalmente dalla corretta gestione degli errori implementata (probabilmente includendo la gestione del timeout, ecc.) E dal modo in cui si evitano conflitti di file quando il sistema di accodamento inizia a eseguire diversi processi di creazione di PDF in parallelo (assicurati di usa nomi di file univoci).

Inoltre, è perfettamente possibile utilizzare la shell dei comandi per operazioni critiche, ma è necessario implementare anche la gestione completa degli errori, che è un po 'più difficile dell'uso di linguaggi come C # o VB.NET.

    
risposta data 10.02.2014 - 18:58
fonte