2012-02-04 8 views
6

AppHarborにデプロイされている実行中の.NET MVCアプリケーションで繰り返しタスクをシミュレートするためにSystem.Runtime.Caching.MemoryCacheを使用しています。キャッシュ内AppHarborでバックグラウンドタスクをシミュレートする

エントリはオフセットAbsoluteExpirationが含まCacheItemPolicyおよびメソッドを呼び出して、キャッシュ内のアイテムの追加を再トリガRemovedCallbackを使用して追加されている(hereに記載されているように)

MemoryCacheはで最初に取り込まれApplication_Start。それはローカルでは問題なく動作しますが、AppHarbor(HttpRuntime.Cache、同じ結果も試してみました)にデプロイされても動作しないようです。

私のアプリケーションは、1人のワーカーしか持たないAppHarborのCANOE(無料)アカウントで実行されています。これは、私がいくつかの有料プランにアップグレードするまでバックグラウンドタスクをシミュレートできないことを意味しますか?

ありがとうございます!

答えて

0

アップグレードが役に立たないと思うのですが、彼らはAppHarborにバックグラウンドジョブを追加することに取り組んでいますが、まだ利用可能です。

https://stillalive.com/のようなサービスを定期的に使用してサイトのページにアクセスし、新しいスレッドをスピンアップしてバックグラウンドタスクを実行するとどうなりますか?無料のアドオンとして利用できます。

私はバックグラウンドタスク機能が利用可能になるのを待っている間、このようなことをやろうと考えていました。

+0

私は外からページをポーリングすることを考えていましたが、私のタスクは完了するまでに時間がかかります。 AppHarborのタイムアウト要求は10秒後に発生し、アクションがまだ実行されているかどうかわかりません。 –

4

あなたのアプリケーションには、これが動作するには、しばらく時間がかかります。 StillAliveとは別に、Pingdomはアプリへのリクエストを生成するための良い賭けです。 MomentAppもご覧ください。私たちはまもなく、バックグラウンドタスクを準備する予定です。

+0

機能を実装する手段としてモニタリングをどのように提案できますか?監視の状態に依存している機能を持つことは、本当に私にとっては素人です。なぜキャッシュコールバックが正しく呼び出されないのかという質問に答えることができますか?ありがとうございました。 – nakhli

+0

@ChakerNakhliキャッシュコールバックが呼び出されていないことがわかりません。あなたのアプリです。 PingdomとStillAliveは、キャッシュコールバックが起動されるようにアプリケーションへのリクエストを作成します。ありがとうございました。 – friism

+1

まず、私は本当にappharborが大好きです。確かに素晴らしい考えです。ただし、監視とは、アプリケーションの状態を監視し、そのパフォーマンスを測定することです。アプリケーションロジックは、監視の実行方法や実装方法に依存することは決してありません。プローブ効果を最小限にする必要があります。それに頼ることはありません。私は監視に頼っています。つまり、opsがそれを変更しようとすると、彼らは単にアプリケーションを壊すでしょう!現実には受け入れられません。申し訳ありませんが、人々に監視を使って労働者を実装することを奨励することは、appharborを素人のおもちゃとして現実のアプリのための強固なプラットフォームの考えではないようにします。 – nakhli

関連する問題