0

メッセージ キューをリッスンし、このメッセージ キューからの要求を処理する Windows サービスがあります。メッセージをメッセージ キューに入れる初期アプリケーションがあります。サービス自体は実際にいくつかのファイルをオンザフライで作成します。これらのファイルが作成されると、これらのファイルを取得して基本的に画面に描画するための初期アプリケーションが必要になります。(ファイルは html 形式です) とりあえず、ローカル マシンでアプリケーションとサービスを実行しているため、ファイルはマシンの c: ドライブに配置されています。

私の問題は、サービスがメッセージを取得して処理したかどうかを最初のアプリケーションに通知する何らかの方法が必要なことです。私はこれを行う方法を研究してきましたが、手ぶらでやってきました。また、これを機能させるために何ができるかについて、アイデアをブレインストーミングしています。実行不可能な解決策の 1 つは、メッセージをキューに送信するときにデータベース テーブルにレコードを挿入し、サービス内で処理が終了したらキュー レコードを更新することでした。この間、アプリケーションはテーブルに対してクエリを実行し、処理完了のステータスをチェックします。私はこのアイデアがあまりにも集中的すぎるように感じるので、まったく好きではありません. どうすれば実現できるのか、今後も研究を続けていきたい」しかし、SQLクエリを何度も実行するよりも、誰かがこれに対するより良い解決策を持っていることを願っています。過去にイベント ビューアーにプロセスのクエリを実行しようとしたことがあり、その方法はわかっていますが、達成しようとしているタイミングには時間がかかりすぎることに注意してください。

4

1 に答える 1

0

Windowsサービスを呼び出す前に、レコードをデータベースに挿入するルートに行き着きました。次に、Windows サービスがそのプロセスを終了すると、この db レコードが更新されました。私のページは、データベースをチェックして、レコードのフラグが処理済みに設定されているかどうかを確認するjavascriptを介してWebサービスを呼び出しています。これにより、Windows サービスがキューからのメッセージの処理をいつ終了したかを判断できます。

于 2012-10-26T22:26:08.930 に答える