Funzionalità di programmazione facile da usare

0

Sto cercando di aggiungere una funzione di pianificazione alla mia applicazione di scraping web che consentirà all'utente di pianificare i processi di raschiatura in modo che possa, ad esempio, eseguire un lavoro ogni lunedì o ogni 2 ore o cose del genere.

Da un lato, potrei creare uno scheduler molto semplice che ti permette di scegliere una data e un'ora specifiche e scegliere un intervallo di tempo che indicherebbe la frequenza con cui eseguire il lavoro a partire dalla data e ora specificate. Quindi, se, ad esempio, scelgo il 31 dicembre alle 14:00 e scelgo 1 giorno come intervallo, il lavoro verrà eseguito tutti i giorni alle 2:00 del pomeriggio a partire dal 31 dicembre. Ma cosa succede se vuole eseguire il lavoro ogni sabato e Domenica o tre volte al giorno la domenica?

Dall'altro lato, potrei incorporare una sorta di linguaggio di scripting che consentirà all'utente di utilizzare qualsiasi logica che desidera, ma ciò sarebbe eccessivo per me e per l'utente. non non ha bisogno di eseguire un lavoro ogni giorno del mese che è un numero primo o qualcosa del genere.

Quindi questa è una domanda di buon senso, non di programmazione. Come implementeresti questo, o conosci qualche tipo di lavoro di programmazione simile in qualsiasi altro tipo di applicazione? Ho guardato lo scheduler nel mio antivirus ma questo è estremamente semplice e semplice.

    
posta Ahmet 31.12.2011 - 04:59
fonte

3 risposte

2

Perché nemmeno farlo? Il sistema operativo ha già un servizio di pianificazione integrato (ad esempio cron on * nix, Task Scheduler su Windows, ecc.). Fornisci semplicemente la possibilità di avviare il tuo processo dal lancio della riga di comando e lasciare che sia il sistema operativo a occuparsene.

Se vuoi, puoi costruire un'interfaccia utente nell'applicazione che si interfaccia con il meccanismo integrato del sistema operativo per fornire le configurazioni più comuni, ma per qualcosa di più complicato, la pianificazione è fondamentalmente un problema risolto.

    
risposta data 31.12.2011 - 05:39
fonte
0

Penso che qualcosa del tipo Utilità di pianificazione di Windows fornisca una versatilità sufficiente per quello che i tuoi utenti probabilmente vorranno. Questo è un compito in cui prenderei un approccio YAGNI. Implementa qualcosa di semplice e diretto che copre la maggior parte degli scenari e poi lavora solo per includere casi eccezionali su richiesta.

    
risposta data 31.12.2011 - 05:13
fonte
0

Vorrei sviluppare un'interfaccia utente per gli scenari più comuni. Una volta al giorno in un dato momento può essere comune. O forse in modo continuo su un intervallo specifico sarà più comune (ad esempio, ogni mezz'ora).

Se vuoi offrire maggiore flessibilità, ti suggerisco di consentire le espressioni CRON . Non c'è bisogno di uno scripting personalizzato, CRON lo è quando si tratta di programmare. Per consentire la massima flessibilità, è sufficiente consentire più espressioni CRON.

Uno dei principali vantaggi delle espressioni CRON è che quasi sicuramente avrai a disposizione un'implementazione dello scheduler che può accettarli. C'è Quartz per Java , Quartz.Net e, naturalmente, il demone cron su qualsiasi sistema basato su Unix. Ho usato Quartz.Net con grande successo nel modo in cui ho descritto (semplice configurazione per il cronometraggio giornaliero e di intervallo, con CRON utilizzato per tempi più espressivi)

    
risposta data 31.12.2011 - 05:34
fonte

Leggi altre domande sui tag