Prevedo questo dicendo che non ho molta familiarità con la scrittura dei servizi http.
Per semplificare le cose, userò la metafora della creazione di collage dalle immagini selezionate dall'utente. La creazione del collage richiede del tempo perché viene eseguita una discreta quantità di elaborazione delle immagini. Diciamo che ci vogliono 10 minuti per produrre l'output. Di nuovo, questa non è l'applicazione reale ma funziona, si spera, per il punto di questa discussione.
Il mio obiettivo è che non voglio richiedere all'utente di preoccuparsi di essere "fatto" con la creazione del collage o di dover fare clic su un pulsante "OK" per accodare la generazione del collage. Piuttosto, il generatore di collage funziona contro un set di input di immagini e produce un collage basato su qualsiasi cosa sia stata recentemente selezionata dall'utente. È possibile aggiungere / rimuovere immagini dal set di input ogni volta che lo desidera e ad un certo punto verrà prodotto un nuovo collage.
L'utente può creare collage multipli da immagini ogni volta che desidera. Immagina che ci sia un collage di "Bobby's baseball games" e collage di "Vacanze in famiglia". Spero che tu abbia l'idea qui. Ogni volta che voglio aggiungere a un particolare collage, specifica solo quali immagini aggiungere e ho finito.
L'applicazione utilizzata per la selezione delle immagini non sa né pensa a come funziona il generatore di collage. Per disaccoppiare queste due applicazioni, ho un servizio http che riceve le aggiunte / cancellazioni dall'utente. Prende quegli input e li persiste. Per semplificare le cose, il servizio imposta una bandiera "sporca" e imposta ogni nuova voce nel collage. Ciò consente a CollageGenerator di sapere se è necessario ripristinare un collage.
Ora ... alla mia domanda attuale.
I potrebbe scrivere CollageGenerator come servizio Windows che, su base periodica, cerca lavoro da fare. Questo è abbastanza semplice e potrebbe anche essere una semplice applicazione che viene chiamata dall'utilità di pianificazione di Windows. Una di queste soluzioni è essenzialmente la stessa soluzione.
Ma il servizio http potrebbe anche realizzare la stessa cosa spegnendo un thread con un timer e facendo il controllo in seguito?
Riconosco che generalmente ciò che accade con questi servizi http è che vengono chiamati, fanno qualcosa e quindi restituiscono alcuni risultati. Ma può anche generare un thread separato per eseguire attività di background in background legate al timer?
Di nuovo, sto ancora imparando sui servizi http così la mia domanda potrebbe essere molto fuori campo.