2009-05-27 5 views
1

私はWebサーバーとデータベースサーバーを持っています。既存のC#DLLを使用してデータベースにアクセスし、計算を実行するジョブを実行したいと思います。スケジュールされたタスクまたはC#のルーチンデータベースジョブのサービス?

C#でコンソールアプリケーションを作成し、それをWebサーバー(アプリケーションサーバー)でスケジュールしてDBサーバーに対して実行する最も簡単な方法はありますか?

私はオプションとしてSSISを参照していますが、よく分からないので、タスクとしてスケジュールされたコンソールアプリケーションが最適かもしれません。

あなたはどう思いますか?

答えて

0

ジョブが非常に小さい場合は、別のコンソールアプリケーションを作成する必要はありません。ページを別々に書くことができ、バッチファイルを書くことができます。つまり、スケジューラをスケジュールしてスケジュールすることができます。また、ウィンドウのユーザーインターフェイスを通じてスケジュールすることもできます。それを除けば、あなたの仕事が計画/計画のメンテナンスプラン(再インデックス、データベースのバックアップを取る、デフラグ、履歴/ログなどをクリーンアップ)の場合は、 "フォルダがあります。

0

PowerShellスクリプトからC#DLLを呼び出して、そのスクリプトをスケジュール済みタスクとして実行することもできます。

バックグラウンドですぐに行動する必要がある操作については、それぞれのプロジェクトにサービスを提供することをお勧めします。

0

コンソールアプリケーション内でQuartz.NETライブラリ(quartznet.sourceforge.net)を使用すると、オープンソースで完全に動作します。

0

はい最も簡単な解決策は、別のコンソールアプリケーションを作成し、スケジュールされたタスクとして実行することです。

あなたはWebサーバーにアクセスできます。他のものをインストールすることなく、すべてのツールが既にインストールされています。

1

私はコンソールアプリ+スケジュールされたタスクアプローチの大きなファンです。よりクリーンでテストが容易で、何かが南になると再実行する傾向があります。つまり、純粋なSQLで計算を書くことができれば、すべてをSQLジョブとして実行できます。また、SQLCLR(SQL Server内に存在し、基本的にsprocまたはUDFとして表示される.NETアセンブリ)を活用し、SQLジョブエンジン内ですべてを実行することもできます。

+0

私はデータベースマシン上にすべてが隔離されているので、SQLCLRのアプローチが好きです... –

+0

真実ですが、テストするのが難しいだけでなく、多くのDBAがそのボックスに近づけないようにすることができます。 –

関連する問題