2

データベースから毎分削除する機能を実行できるようにしたいと考えています。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」という名前のジョブは登録されていません

4

1 に答える 1

2

コマンド構文を使用してジョブを実行できるようにするにはncron.exe exec jobName、初期化中にジョブの名前を登録する必要があります。

service.At("* * * * *").Run<JobType>().Named("jobName");
于 2012-02-10T13:58:11.920 に答える