Ok, po 'di fondo qui. Ho un'applicazione web su larga scala (MVC3) che fa tutti i tipi di cose non importanti. Ho bisogno di questa applicazione web per avere la possibilità di pianificare lavori Quartz.NET ad-hoc in un database Oracle. Quindi, desidero che i lavori vengano eseguiti in un secondo momento tramite un servizio Windows . Idealmente, mi piacerebbe programmarli per funzionare a intervalli regolari, ma con la possibilità di aggiungere posti di lavoro tramite l'app web.Tricky Quartz.NET Scenario
In sostanza, l'architettura desiderata è qualche variazione di questo:
Web App < -> Quartz.NET < -> Database < -> Quartz.NET < -> Windows Service
Quello che ho codificato finora:
- Un servizio di Windows che (per ora) pianifica AND esegue i lavori. Questo ovviamente non sarà il caso a lungo termine, ma mi chiedo se posso mantenere solo questo e modificarlo per farlo rappresentare sostanzialmente entrambi "Quartz.NET" nel diagramma sopra.
- L'applicazione web (credo che non sono molto importanti qui)
- I posti di lavoro (che sono in realtà solo un altro servizio finestre)
e un paio note importanti:
- deve essere eseguito da un servizio di Windows, e deve essere programmato attraverso l'applicazione web (per ridurre il carico su IIS)
- l'architettura sopra può essere riorganizzate un po ', assumendo l'ab ove si applica ancora il proiettile.
Ora, alcune domande:
- Questo è anche possibile?
- Supponendo (1) passa, che cosa ne pensate voi ragazzi è la migliore architettura per questo? Guarda il primo punto su ciò che ho codificato.
- Qualcuno può forse darmi alcuni metodi di quarzo che mi aiuterà con l'interrogazione del DB per i lavori da eseguire una volta che sono già programmati?
Ci sarà una taglia su questa domanda non appena è ammissibile. Se la domanda viene data una risposta soddisfacente prima di allora, assegnerò comunque il premio al poster della risposta. Quindi, in ogni caso, se dai una buona risposta qui, otterrai una taglia.
Ok, alcune domande prima. Cosa è secondo te un lavoro al quarzo? Ho fatto alcune ricerche veloci su di esso e sembra che un Quartz.Net Job sia un'implementazione auto-scritta di un'interfaccia. Il progetto Quartz è la parte che fa la programmazione. I lavori possono essere archiviati in un database Oracle con l'uso di ADO.net in base alla pagina principale del progetto. Qual è il tuo vero problema qui? – Remco
Beh, sto solo cercando di capire come suddividere il materiale Quartz in modo che una entità li programmi e un'altra entità li esegua. Normalmente, vorrei fare qualcosa come: _scheduler.ScheduleJob (jobDetail, trigger); Ma questo lo imposta per sparare automaticamente ogni tanto, a seconda del 'trigger'. Mi piacerebbe mantenere questa funzionalità, ma anche ottenere la funzionalità per pianificare i lavori al volo –
E il lavoro al quarzo nel mio caso è un servizio Windows che elimina i file non necessari dal sistema –