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

In order to be able to execute a job using the ncron.exe exec jobName command syntax, you will need to register the name for the job during initialization:

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