Attualmente sto lavorando su un sito di e-commerce e c'è una funzionalità che non sono molto sicuro di come implementare. La maggior parte delle volte basta aggiungere prodotti al carrello e comprarli, probabilmente è il flusso di lavoro più semplice. Quello che sto chiedendo è un po 'diverso, e se ci fosse un limite di tempo per un prodotto da acquistare? Voglio dire che alcuni siti ti danno un limite di tempo esatto per comprare un prodotto (come Soccer Manager), in quei siti non puoi tenere un prodotto per sempre, c'è un limite di 15 minuti per esso e se non lo compri in quel periodo, l'oggetto sarà essere rilasciato dal carrello. (e molto probabilmente qualcun altro ci salterà sopra)Come eseguire processi in background in un sito ASP.NET MVC 3?
Ora, come programmatore ASP.NET MVC mi piacerebbe implementare questa funzione, ma come ho detto, non sono sicuro di come farlo. Penso che quando aggiungo l'articolo al carrello ho bisogno di tenere il tempo (qualcosa come ItemAddedAt) e ho bisogno di rilasciare quell'elemento in x minuti, quindi qualcosa deve essere eseguito x minuti dopo per rilasciare quel prodotto. Pensando globalmente, penso di aver bisogno di un servizio, quando aggiungo un articolo, devo anche iscrivermi a questo servizio e il servizio esegue un timer/lavoro in background. Quello che non so/non ho esperienza è questa parte, come farlo in un progetto ASP.NET MVC, c'è un progetto, articolo, libreria o qualcosa del genere?
Naturalmente non so se la mia logica è giusta per questo problema, ho bisogno di una guida, se possibile, qualche codice sorgente su cui lavorare.
Prima di tutto, grazie per la spiegazione dettagliata ^^ Penso che non preferirò l'Utilità di pianificazione di Windows perché da quello che ho capito, se uso l'Utilità di pianificazione in quel modo, ho bisogno di eseguire quel servizio con periodi molto brevi o ci saranno grandi intervalli di tempo tra la data di scadenza e il successivo periodo di esecuzione pianificato. IMHO la tua seconda soluzione è più eccitante perché ti dà un trigger preciso e sembra possa essere facilmente implementata ma c'è una domanda nella mia mente, CacheItemRemovedCallback è abbastanza affidabile da poter essere utilizzato in questo tipo di soluzioni? –
questo tipo di implementazione ricorsiva potrebbe anche funzionare, ma ho immediatamente iniziato a preoccuparmi della dimensione dello stack delle chiamate in questo caso –
@ArtemNikolov Abbiamo effettivamente utilizzato quel codice per la stessa identica ragione (attualmente sta lavorando in un e-commerce, per liberando azioni), ed è in corso da circa 4 anni, quindi suppongo di sì :) – salgiza