Application_End イベントをブロックする解決策
あるプロジェクトで作業をしているときに、同期化された
ERP
<スパン
データの問題点、お客様の要望は
番組内では
プログラムが一定間隔で売上記録をエクスポートするための開始時刻と時間間隔を設定し、この開始時刻と時間間隔は手動で変更することが可能です。
<スパン
この問題は何日も悩まされましたが、ドキュメントを書くことでやっと解決しました。
<スパン
まず、一定時間ごとにタスクを実行させるためには
ASP.NET
で
<スパン
タイマー
<スパン
タイマーですが、このタイミングはあまり正確ではなく、これを使うと後述する別の問題が発生します。2つ目の方法は
Quartz.NET
<スパン
時間指定されたジョブのスケジューリングに特化したオープンソースプロジェクト。
<スパン 今回のプロジェクトでは Quartz.NET <スパン <スパン コンポーネントは、ジョブのスケジューリングに便利なのですが、問題があります。 しばらく実行した後、自動タスクが停止していることが判明する . Webで情報を確認すると、主張が様々です。 <スパン
その後、私自身の実験だけでなく、多くの情報を確認したところ、Webアプリケーションはリクエストがない場合、一定時間後にアプリケーションを停止することが判明し、具体的には、Webサイトの最後の1つ
セッション
終了すると、ウェブアプリケーションが終了します。もちろん、これが引き金となって
アプリケーション終了
イベントを使用します。これによって、時間指定されたタスクは停止されます。
<スパン
<スパン
今、問われているのは
どのようにすれば、すべてのサイトにリクエストを持たせることができますか?どうすれば
アプリケーション_エンド
イベントが発生しない?
この疑問もインターネット上ではいろいろと述べられており、例えば、以下のような指摘もあります。
アプリケーション終了
でサイトへのリクエストをシミュレートするプログラムにおいて、リスタート
アプリケーション開始
イベントの場合、プログラムコードも
<スパン
http://asdfblog.com/technology/aspnet-scheduled-tasks-with-quartznet.html
ここに詳しい説明があります。でも、ブロガーがやっていた通りにやっても、思い通りにならないんです。しかし、彼はそれを使って、処理
アイアイエス
<スパン
アプリケーションプールのリサイクルの問題。
<スパン
<スパン
孟子
E
章に書いてあります。実行されたタスクをスケジュールするために新しい別のスレッドが作成されます。個人的には、もっと面倒だと思い、この方法は使いませんでした。
最後に、これを簡単に処理する方法が見つかりました。
ASP.NET
キャッシュタイムアウトの手法です。明確にするために
<スパン
基本的な考え方
<スパン
アプリケーション起動時に、プログラムによりWebサイトのページをキャッシュする。ページをキャッシュする際、キャッシュの有効期限と、キャッシュが切れたときに発生するコールバックイベントを設定する。
キャッシュが失効したときに起動するコールバックイベント
ここがポイントです。このプログラムを使って、キャッシュが切れたときにサイトのページを要求するシミュレーションを行い、再びキャッシュし、ループさせます。
...
<スパン
コードの説明:(すべて
グローバル.asax
<スパン
)
これにより、ウェブアプリケーションがウィンドウズサービスのようにバックグラウンドで静かに実行されるようになります。表示されない方は、こちらをご覧ください。
http://www.codeproject.com/KB/aspnet/ASPNETService.aspx
<スパン
アタッチメントです。
<スパン
水晶のこと。
詳しいチュートリアルはこちらをご覧ください。
公式チュートリアルです。
http://quartznet.sourceforge.net/tutorial/index.html
;
<スパン
中国語の翻訳です。
http://www.cnblogs.com/shanyou/category/102991.html
<スパン ====================================2013-8-2 Postscript ================================================
<スパン WebForm の Net コンポーネントは、個人的にテストした結果、安定性も十分でないと感じ、最終的には <スパン Winformクライアントアプリケーション+Quartz.NETコンポーネントの実装で、サーバー上にプログラムが配置され実行されています。 スパン
サーバー側のプログラムが停止しないようにするには、Windowsサービスとして記述して、サーバーが起動したらタスクを実行し、サーバーが停止しない限り、プログラムが動き続けるようにすればよい。
<スパン もちろん、これは専用ホスティングにのみ有効で、仮想スペースには使えません。
<スパン アタッチメントです。
<スパン 1. Windowsサービスの書き方
http://msdn.microsoft.com/zh-cn/library/vstudio/9k985bc9.aspx
http://www.cnblogs.com/tuyile006/archive/2006/11/27/573654.html
2. Windowsサービスヘルパークラス。 http://blog.csdn.net/a497785609/article/details/9103129
関連
-
NET 6の新しい設定オブジェクトConfigurationManagerの紹介
-
.netcoreプロジェクトでIStartupFilterを使用するためのチュートリアル
-
.NET 6:.NETのロギングコンポーネントlog4netを使用する。
-
.NET複数データベース一括データ挿入、更新(SqlServer、MySql、PgSql、Oracleをサポートします。)
-
NETガベージコレクション GC診断ツール dotnet-gcmon 使用方法
-
net core downlink tracking skywalking インストールと使いやすいチュートリアル
-
ASP.NET CoreでCAPの取引詳細を自動で有効にする
-
ASP.NET Core MVC フィルタ
-
再起動を伴わないNET5の設定変更は自動的に反映される
-
ajaxでポップアップアラートボックス
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン