2012-02-04 13 views
6

Używam System.Runtime.Caching.MemoryCache do symulacji powtarzającego się zadania w działającej aplikacji .NET MVC wdrożonej w AppHarbor.Symulacja zadania w tle na AppHarbor

Wpisy w pamięci podręcznej są dodawane przy użyciu CacheItemPolicy który zawiera AbsoluteExpiration offsetu i RemovedCallback który wywołuje metodę i retriggers dodanie pozycji w pamięci podręcznej (jak opisano here)

MemoryCache jest wypełniana po raz pierwszy w Application_Start. Działa dobrze lokalnie, ale wydaje się nie działać po wdrożeniu na AppHarbor (próbowano również z HttpRuntime.Cache, ten sam wynik).

Moja aplikacja działa pod kontem CANOE (bezpłatnym) w AppHarbor, które ma tylko jednego pracownika. Czy to oznacza, że ​​nie będę w stanie symulować zadania w tle, dopóki nie uaktualnię do płatnego planu?

Dzięki!

Odpowiedz

0

Nie sądzę, że aktualizacja pomoże, pracują nad dodaniem pracy w tle do aplikacji AppHarbor, ale według mojej wiedzy, którą już mają.

Co się stanie, gdy korzystasz z usługi takiej jak https://stillalive.com/, aby okresowo trafiać na stronę witryny, która następnie obraca nowy wątek i rozpoczyna wykonywanie zadania w tle? Jest dostępny jako bezpłatny dodatek.

Myślałem o zrobieniu czegoś takiego, czekając, aż funkcja zadania w tle będzie dostępna.

+0

Myślałem o sondowaniu strony z zewnątrz, ale moje zadanie może trochę potrwać. AppHarbor żąda przekroczenia czasu po 10 sekundach i nie wiem, czy akcja jest nadal wykonywana, czy nie. –

4

Twoje zgłoszenie musi co jakiś czas gościć, aby to zadziałało. Innym niż StillAlive, Pingdom to także dobry sposób generowania żądań do Twojej aplikacji. Powinieneś również rzucić okiem na MomentApp. Spodziewamy się, że wkrótce udostępnimy zadania w tle.

+0

Jak zaproponować monitorowanie jako środek do wdrożenia funkcjonalności? posiadanie funkcji polegającej na statusie monitorowania wydaje mi się naprawdę amatorskie. Czy potrafisz odpowiedzieć na pytanie, dlaczego wywołanie zwrotne pamięci podręcznej nie jest poprawnie wywoływane? Dziękuję Ci. – nakhli

+0

@ChakerNakhli Nie wiem, czy twój oddzwonień w pamięci podręcznej nie jest wywoływany, to twoja aplikacja. Pingdom i StillAlive tworzą żądania do aplikacji, aby wywołanie zwrotne pamięci podręcznej miało szansę zostać uruchomione. Dziękuję Ci. – friism

+1

Po pierwsze, naprawdę uwielbiam appharbor. To beznadziejnie świetny pomysł. Jednakże monitorowanie ma na celu * monitorowanie * stanu aplikacji i mierzenie jej wydajności. Powinieneś * nigdy * nie mieć logiki aplikacji, opierającej się na sposobie monitorowania lub implementacji. Powinieneś zminimalizować efekt sondy; nie polegać na tym. Opieram się na monitorowaniu, oznacza to, że jeśli ops zdecyduje się go zmienić, po prostu przerwie aplikację! Nie do zaakceptowania w prawdziwym życiu. Przykro nam, ale zachęcanie ludzi do korzystania z monitoringu w celu wdrażania pracowników sprawia, że ​​pojawiają się one jako zabawka dla amatorów, a nie solidna platforma przeznaczona dla prawdziwych aplikacji. – nakhli