1

Windows スケジューラを使用しないのはなぜですか? 通常の平日の午後 1 時ではなく、ビジネス ルールに従って特定の時間に実行する必要があるアプリケーションがいくつかあります。

また、アプリケーションの実行速度が遅い場合や実行されなくなった場合に通知するルールを設定できるように、アプリケーションが進行状況のフィードバックを提供する方法も必要です。

どの Windows API を調べる必要がありますか? (FileWatcher API の時間バージョンのような)

アプリケーションが進行状況 (ファイル、ソケット、Windows メッセージなど) をスケジューラに通知する最良の方法は何ですか?

4

5 に答える 5

1

AppControlsには、スケジュールされたイベントを作成するために使用できるCronJobコンポーネントがあります。これにより、プログラムが毎分目を覚ましてスケジュール自体を確認する必要がなくなります。代わりに、ジョブをスケジュールして、コールバックメソッドを指定するだけです。

私はこのコンポーネントを自分でジョブのスケジューリングに使用し、その動作方法に非常に満足しています。

于 2009-02-27T21:07:35.647 に答える
1

あなたが本当に望んでいるのは、何か(あなたまたはシステムメッセージまたはトレースまたはパフォーマンス、イベントログなど)にレポートし、プロセス間プロトコルを介してメッセージを受信して​​応答する方法を受信するアプリケーションの共通フレームワークだと思います。

レポートに基づいて、スケジュールを変更したり、変更を加えたりすることができます。

そのため、いくつかのモニターアプリがあり、他の各アプリが共通のレポートを実行します。

私が考えることができるイベント:-開始-停止-エラー-通常のログメッセージ-そしてもちろん、アプリが行う特定のこと。

これを行う既存のクラス/フレームワークがおそらくあると思います-あなたは周りをチェックする必要があります。

私なら、他のすべてのアプリと通信できるサービスを作成し、おそらくhttpサーバーでさえあります。メッセージを特定のアプリにルーティングし、それらのプロセスを停止してクエリを実行することができます。

しかし、あなたがやりたいことをする方法はたくさんあります。それらは私の頭のすぐ上にありました。

あるいは、これらをサービスにすることができ、送信されたメッセージを処理できる場合もあります。それらの通常の処理は、タスクコマンドで「ウェイクアップ」されるまで何もしません。

于 2009-02-27T22:22:23.860 に答える
1

1 つでさらに多くの質問があります。通常は分割する必要があります。しかし、これを無視して答えようとしましょう。

  1. 特定のイベントをスケジュールするには (アプリケーションの実行を含む): JVCL の TJvScheduledEvents を使用します。IMHO JVCLは、膨大な数のコンポーネント、開発者、およびサポートを備えた、最高の Delphi オープン ソース ライブラリです。TJvScheduledEvents は非常にきちんとしたもので、イベントのスケジューリングにスレッドを使用します。また、JVCL にはイベント用の詳細なエディターがあります (ただし、使用するには小さなハックが必要です)。

  2. アプリケーションから (リモートの) 中央ポイントに「フィードバック」を提供するには: 非常に優れた解決策 (要件が許せば) は、アプリケーションの進行状況をFirebirdサーバーのテーブル (LOG と呼びましょう) に記録することです。LOG には、次のフィールドを含めることができます: COMPUTER、USERNAME、APPNAME、MSG、LOGDATE (など)。LOG テーブルの After Insert トリガーで、イベントを発生させることができます (NEW_LOG と呼びましょう)。コンソール アプリでは、このイベントへの関心を登録することができます。そのため、アプリケーションは、任意のアプリケーションで発生するすべてのもので自動的に更新されるため、ログ分析、グラフなどを実行できます。もちろん、IB で実行できます。しかしIBコスト。

... Windows API ルートに進むと、ヘッダー (おそらく翻訳されていない) が必要になります。最愛の Pointers/PChars などに遭遇します。 Delphi の方法で、なぜそれを使用しないのですか?

于 2009-02-28T11:07:29.013 に答える
1

Vista/Win2k8 には、素晴らしいタスク スケジューラ 2.0 API があります: http://msdn.microsoft.com/en-us/library/aa384138(VS.85).aspx。以前のバージョンには Task Scheduler 1.0 API がありましたが、使用したことはありません。

于 2009-02-27T21:42:02.880 に答える