2012-02-04 27 views
6

AppHarbor'da dağıtılan çalışan bir .NET MVC uygulamasında yinelenen bir görevi simüle etmek için System.Runtime.Caching.MemoryCache kullanıyorum.AppHarbor üzerinde arka plan görevini simüle etme

önbelleğinde

verileri ofset AbsoluteExpiration içeren bir CacheItemPolicy ve bir yöntemi çağırır ve (yukarıda tarif here gibi) önbelleğinde ürünün ilave yeniden tetikler bir RemovedCallback kullanılarak ilave edilir

MemoryCache ilk kez doldurulur

Application_Start. Yerel olarak gayet iyi çalışıyor, ancak AppHarbor'da konuşlandırıldığında işe yaramıyor gibi görünüyor (HttpRuntime.Cache ile de denendi, aynı sonuç).

Uygulamam, yalnızca bir çalışanı olan AppHarbor'da bir CANOE (ücretsiz) hesabı altında çalışıyor. Bu, ücretli bir plana geçene kadar arka plan görevini taklit edemeyeceğim anlamına mı geliyor?

Teşekkürler!

cevap

0

Yükseltme işleminin yardımcı olacağını düşünmüyorum, AppHarbor'a arka plan işlerinin eklenmesi üzerinde çalışıyorlar, ancak şu andaki bilgilerime ulaşıyorlar.

Sitenizde yeni bir iş parçacığı döndüren ve arka plan görevinizi çalıştırmaya başlatan bir sayfaya düzenli olarak vurmak için https://stillalive.com/ gibi bir hizmeti kullanmaya ne dersiniz? Ücretsiz eklenti olarak kullanılabilir.

Arka plan görevi işlevinin kullanılabilir olmasını beklerken böyle bir şey yapmayı düşünüyordum.

+0

Dışarıdan bir sayfayı yoklamayı düşünüyordum, ancak görevimin tamamlanması biraz zaman alıyor. AppHarbor zaman aşımları 10 saniye ya da daha sonra istekleri ve eylem hala yürütülmüş olup olmadığını bilmiyorum. –

4

Uygulamanızın çalışması için uygulamanızın her defasında bir ziyaretçiye sahip olması gerekir. StillAlive dışındaki Pingdom, uygulamanıza istek oluşturmak için iyi bir seçimdir. Ayrıca MomentApp'a da bakmalısınız. Kısa bir süre sonra arka plan görevlerine sahip olmayı bekliyoruz.

+0

Bir işlevselliği uygulamak için izlemeyi nasıl önerebilirsin? Gözlemleme durumuna dayanan bir özelliği olması bana gerçekten amatör görünüyor. Önbellek geri aranmasının neden düzgün bir şekilde çağrılmadığını soruyor musunuz? teşekkür ederim. – nakhli

+0

@ChakerNakhli Önbelleğinizin geri çağrılmadığını bilmiyorum, bu sizin uygulamanız. Pingdom ve StillAlive, uygulamanıza, önbellek geriçağırımının işten çıkarılma şansı verdiği istekleri oluşturur. teşekkür ederim. – friism

+1

İlk olarak, appharbor'u çok seviyorum. Bu kesinlikle harika bir fikir. Bununla birlikte, izleme, * uygulamanın durumunu denetlemek ve performansını ölçmek anlamına gelir. Uygulama mantığınızın izlemenin nasıl yapıldığına veya uygulanmasına güvenmemesi * gerekir. Prob etkisini minimize etmelisiniz; ona güvenmeyin. İzlemeye güvenirsiniz, yani eğer ops değişmeye karar verirse, sadece uygulamayı bozarlar! Gerçek hayatta kabul edilemez. Maalesef çalışanları işçileri uygulamak için izlemeyi kullanmaya teşvik etmek, appharbor'u amatörler için bir oyuncak gibi görünür ve gerçek yaşam uygulamaları için düşünülen sağlam bir platform değildir. – nakhli