データベースから毎分削除する機能を実行できるようにしたいと考えています。SQL ジョブを使用しますが、SQL Server 2008 Express のリソースしかありません。そのため、ncron ジョブを使用しています (経験があまりありません)。
私のコードは次のとおりです。
namespace ConsoleApplication2_ncron
{
class Program
{
static void Main(string[] args)
{
Bootstrap.Init(args, ServiceSetup);
}
static void ServiceSetup(SchedulingService service)
{
//service.Hourly().Run<doStuff>();
service.At("* * * * *").Run<ConsoleApplication2_ncron.doStuff>();
}
}
}
そして、私のdoStuff.cs
ファイルは
namespace ConsoleApplication2_ncron
{
class doStuff : NCron.CronJob
{
public override void Execute()
{
SqlConnection conn = new SqlConnection();
conn = new SqlConnection(ConfigurationManager.AppSettings["strConnectionString"].ToString());
conn.Open();
SqlCommand command = conn.CreateCommand();
command.CommandText = "res_delete_old_records";
command.CommandType = CommandType.StoredProcedure;
command.ExecuteNonQuery();
// close the connection
conn.Close();
throw new NotImplementedException();
}
}
}
ただし、コマンドラインで次を実行すると(サーバーに配置する前にテストするため):
consoleApplication2_ncron exec doStuff
私は以下を取得します:
「doStuff」という名前のジョブは登録されていません