共有ホスティングサーバー上で設定されたスケジュール時間にさまざまなタスク(電子メール警告/ニュースレター送信など)を実行するにはどうすればよいですか?専用サーバーを購入せずにASP.NET Webサイトのスケジュールされたジョブ
3
A
答えて
10
は、ここで私はスケジュールされたタスクトリガーするためにキャッシュの有効期限を使用して、過去にこの種のものを行うために使用しましたGlobal.ascx.csファイルです:現時点では
public class Global : HttpApplication
{
private const string CACHE_ENTRY_KEY = "ServiceMimicCacheEntry";
private const string CACHE_KEY = "ServiceMimicCache";
private void Application_Start(object sender, EventArgs e)
{
Application[CACHE_KEY] = HttpContext.Current.Cache;
RegisterCacheEntry();
}
private void RegisterCacheEntry()
{
Cache cache = (Cache)Application[CACHE_KEY];
if (cache[CACHE_ENTRY_KEY] != null) return;
cache.Add(CACHE_ENTRY_KEY, CACHE_ENTRY_KEY, null,
DateTime.MaxValue, TimeSpan.FromSeconds(120), CacheItemPriority.Normal,
new CacheItemRemovedCallback(CacheItemRemoved));
}
private void SpawnServiceActions()
{
ThreadStart threadStart = new ThreadStart(DoServiceActions);
Thread thread = new Thread(threadStart);
thread.Start();
}
private void DoServiceActions()
{
// do your scheduled stuff
}
private void CacheItemRemoved(string key, object value, CacheItemRemovedReason reason)
{
SpawnServiceActions();
RegisterCacheEntry();
}
}
を、これはあなたをオフに発射しますアクションは2分ごとに実行されますが、これはコード内で設定可能です。
0
ここでは、global.asaxでスレッドを作成することでこれをやっていました。彼らはそれで成功したように聞こえた。私はこのアプローチを自分でテストしたことがありません。
これは私の意見では、キャッシュの有効期限のメカニズムがオーバーロードされている方が良い方法でしょう。
0
スケジューリングサービスは共有ホスティングで問題なく使用できます。 .Net libraryは、オーバーヘッドなしでスケジュールされたタスクを作成するためにも利用できます。
免責事項:私はATriggerチームの一員でした。それはフリーウェアであり、商業目的はありません。
関連する問題
- 1. Ubuntuサーバーのスケジュールされた順次ジョブ
- 2. ホストされているWebサーバーでジョブをスケジュールする
- 3. .NETのスケジュールされたジョブAWSでホストされるWebアプリケーション
- 4. ASP.net Webサイト内の専用ポートにあるWebサービス
- 5. Slurmのサブミットされたジョブがスケジューリングされず、スケジュールされていません。
- 6. ASP.NET Webサイトでスケジュールされたタスクを動的に作成する
- 7. ピボットクラウドファウンドリー - Javaスケジュールされたジョブ
- 8. GKE:スケジュールされたジョブ
- 9. azureでスケジュールされたwebジョブを作成する
- 10. スケジュールされたWebジョブには "RunAndBlock"が必要ですか?
- 11. Hazelcastスケジュールされたジョブ(クォーツのサポート?)
- 12. 1and1.comのPHP Cronジョブ専用サーバー
- 13. SQL Server 2012のスケジュールされたジョブ
- 14. スケジュールされたジョブを実行する
- 15. ページをリロードせずにASP.NET Webサイトの新しいコンテンツ
- 16. Android Asynctaskとサービスとスケジュールされたジョブ
- 17. Oracle dbでスケジュールされたジョブのパフォーマンスLinux cronタブでスケジュールされた同じジョブ
- 18. WindowsスケジュールされたタスクまたはWindowsサービスをAzure Webジョブに移行
- 19. サーバーから公開されたASP.NET Webサイトのソースコードを取得する
- 20. サーバーを使用したアプリ内購入
- 21. データベースを使用せずに別のWebサイトからWebサイトにログインする
- 22. Webサイトを取得する専用のIPアドレスを使用してASP.NET
- 23. Laravel 5.1:すべてのジョブとスケジュールされたジョブ出力
- 24. ASP.NET用ニュースプラグインWebサイト
- 25. スケジュールされたジョブが実行されておらず、カーネルファイルが作成されていません。
- 26. Webサーバー/ IIS上でWebサイトをホストせずにWebサイトを実行できますか?
- 27. APEXを使用して毎日スケジュールされたジョブを実行
- 28. ASP.NET Webサイトの定期購読サービスを設定する
- 29. Apacheサーバーを使用したC#Webサイト
+1このセッションを開始して共通のページが読み込まれているようなことは、この種の作業がはるかに適しているようです。あなたはいつもそれが信頼できると感じましたか? –
質問:アプリケーションがキャッシュをいっぱいにして(サーバーのメモリが不足しているため)、ASP.NETが通常の優先項目の一部を早期にクリアするとどうなりますか。DoServiceActionsがより頻繁に実行され、予期されるようになります。どのようにこれは/回避策の可能性についての任意のアイデアですか? – David
私はこの問題にぶつかりませんでしたが、それはもっともらしいシナリオのようです。私はストップウォッチを使用してメソッドが最近どのくらい呼び出されたかのチェックが回避策になると思いますか? –