Algoritmo per i promemoria degli appuntamenti

1

Il mio programma consente agli utenti di memorizzare gli appuntamenti in un calendario. Quello che mi è stato richiesto è la capacità di inviare promemoria via SMS alle persone per ricordare loro il loro appuntamento. L'SMS dovrebbe essere inviato circa 2 giorni prima del loro appuntamento.

Ho pensato che il modo migliore per ottenere questo risultato è scegliere un momento della giornata (ad esempio mezzogiorno) perché il software verifichi quali appuntamenti sono in 2 giorni e poi invia i promemoria SMS alle persone che hanno quegli appuntamenti.

Questo sarebbe un approccio consigliabile a questo problema? È consigliabile che ciò avvenga in un momento della giornata o sarebbe meglio estenderlo in qualche modo più a lungo?

Sto assumendo a questo punto che un thread in background sarebbe una buona idea per questo tipo di attività.

    
posta CJ7 25.07.2012 - 08:21
fonte

3 risposte

3

Questa domanda dovrebbe essere proposta all'utente , in quanto le ramificazioni per l'utente vanno ben oltre i problemi tecnici.

La frequenza che chiami il tuo processo dovrebbe avere ben poca importanza sul design.

    
risposta data 24.08.2012 - 18:51
fonte
1

Se i suoi due giorni prima dell'appuntamento sarebbe a mio avviso sufficiente controllare una volta al giorno. Penso che outlook lo fa all'avvio quando dici: ricordami 2 giorni prima dell'evento. Per me non avrebbe molto senso controllare quell'ora, perché probabilmente non importa se leggo gli SMS alle 8:00 o alle 18:00.

Forse il modo migliore per essere sicuri è avere un caso d'uso o un requisito dell'utente finale e chiedergli quando si aspetta la notifica.

Purtroppo non so in quale lingua si programma. Se si tratta di Java o C #, si consiglia di dare un'occhiata a Quartz ( Java , C # ). Puoi facilmente specificare con quale frequenza e quando deve essere eseguita esattamente un'attività. Forse puoi usarlo.

    
risposta data 25.07.2012 - 09:45
fonte
1

Questo è un problema di coda. Quando imposti il promemoria, crei un "compito". Questa attività ha uno stato, come l'apertura e una data di scadenza minima prima che possa iniziare. Quindi, controlli l'elenco delle attività. Puoi farlo più volte al giorno, potrebbe anche essere un processo continuo.

Quando inizi a lavorare su un'attività, la imposti in attesa e, al termine, rimuovila o chiudila. A seconda della quantità di cronologia che desideri. In questo modo puoi sempre riavviare il servizio, eseguirlo su molte macchine ecc. Finché il tuo blocco è ok, cambiando lo stato delle attività sarai ok.

In generale è consigliabile farlo con un vero software di coda. La creazione di uno che è scalabile è piuttosto difficile in realtà a causa di problemi di blocco, server che si bloccano ecc.

    
risposta data 25.07.2012 - 10:06
fonte

Leggi altre domande sui tag