Nella mia sede di servizio, abbiamo bisogno di diversi listener di file. Si tratta generalmente di programmi a esecuzione prolungata che attendono il rilascio di file in una directory specifica. Il modo in cui i file sono gestiti differisce, ma tutto il resto fino a quella parte è essenzialmente lo stesso. Questo mi dice che abbiamo l'opportunità di pulire un po 'le cose e seguire il principio ASCIUTTA.
Ho già creato un wrapper sottile usando Javas WatchService
, e ho pensato di estrapolare uno scheletro o un'interfaccia per monitorare le directory, che potremmo usare come base. Con questo, ho solo bisogno di cambiare la funzione "processo" che differirà tra gli usi. Naturalmente, se l'interfaccia viene utilizzata e richiede aggiornamenti, è necessario aggiornare ogni istanza che la utilizza fino a quel momento.
Con un servizio sarebbe molto più facile mantenere i programmi facendone uso, anche se ciò richiederebbe più impegno in anticipo. Riesco anche a vedere i bisogni di più ascoltatori di file nel prossimo futuro, quindi un servizio potrebbe sicuramente rafforzare tutte le duplicazioni che abbiamo attualmente.
A che punto sarebbe più vantaggioso passare da un'interfaccia semplice a una soluzione più complessa come un servizio? Per servizio intendo qualcosa che accetti la registrazione da un altro programma (probabilmente RESTful api) e invierebbe un payload al programma registrato. In questo modo, il programma non avrà bisogno di tutto il codice ripetuto in più; solo una chiamata di servizio e un'attesa per il carico utile.