2012-02-04 14 views
6

Sto utilizzando System.Runtime.Caching.MemoryCache per simulare un'attività ripetuta su un'applicazione MVC .NET in esecuzione distribuita su AppHarbor.Simulazione di attività in background su AppHarbor

voci nella cache vengono aggiunti utilizzando un CacheItemPolicy che contiene un offset absoluteExpiration e RemovedCallback che chiama un metodo e retrigger l'aggiunta della voce nella cache (come descritto here)

MemoryCache viene compilato prima volta in Application_Start. Funziona bene localmente, ma non sembra funzionare una volta distribuito su AppHarbor (provato anche con HttpRuntime.Cache, stesso risultato).

La mia applicazione è in esecuzione con un account CANOE (gratuito) su AppHarbor che ha solo un lavoratore. Questo significa che non sarò in grado di simulare l'attività in background finché non eseguo l'aggiornamento ad un piano a pagamento?

Grazie!

risposta

0

Non penso che l'aggiornamento aiuterà, stanno lavorando per aggiungere lavori in background ad AppHarbor ma a mia conoscenza sono ancora disponibili.

Che dire di utilizzare un servizio come https://stillalive.com/ per colpire periodicamente una pagina del sito che quindi gira un nuovo thread e inizia a eseguire l'attività in background? È disponibile come componente aggiuntivo gratuito.

Stavo pensando di fare qualcosa di simile mentre aspettavo che la funzionalità del background background fosse disponibile.

+0

Stavo pensando di interrogare una pagina da fuori, ma il mio compito richiede del tempo per finire. AppHarbor interroga le richieste dopo circa 10 secondi e non so se l'azione è ancora eseguita o meno. –

4

L'applicazione deve avere visitatori ogni tanto perché funzioni. Oltre a StillAlive, Pingdom è anche una buona scommessa per generare richieste alla tua app. Dovresti anche dare un'occhiata a MomentApp. Ci aspettiamo di avere a breve compiti di background pronti.

+0

come si può proporre il monitoraggio come mezzo per implementare una funzionalità? avere una funzionalità basata sullo stato del monitoraggio mi sembra davvero dilettantistica. Puoi rispondere alla domanda perché il callback della cache non viene chiamato correttamente? grazie. – nakhli

+0

@ChakerNakhli Non so se il callback della cache non viene chiamato, è la tua app. Pingdom e StillAlive creano richieste alla tua applicazione in modo che il callback della cache abbia la possibilità di essere licenziato. grazie. – friism

+1

Per prima cosa, adoro appharbor. È sicuramente un'ottima idea. Tuttavia, il monitoraggio ha lo scopo di * monitorare * lo stato dell'applicazione e misurare le sue prestazioni. Non dovresti * mai * avere la tua logica applicativa fare affidamento su come il monitoraggio è fatto o implementato. Si dovrebbe minimizzare l'effetto sonda; non fare affidamento su di esso. Mi affido al monitoraggio, vuol dire che se le OP decidono di cambiarlo, interromperanno semplicemente l'app! Non accettabile nella vita reale. Scusa ma incoraggiare le persone a usare il monitoraggio per implementare i lavoratori rende Appharbor come un giocattolo per i dilettanti e non una piattaforma solida pensata per app di vita reale. – nakhli

Problemi correlati