【问题标题】:Scheduling MVC 4 - C# to call a function at specific time调度 MVC 4 - C# 在特定时间调用函数
【发布时间】:2012-08-30 16:11:34
【问题描述】:

我是MVC 4的新手,这是我第一个使用这项技术的项目,我浏览了ASP.NET中的MovieContosoUniversity示例。

该网站声称销售预付费产品。 数据库包含用户、经销商、供应商等表。

我正在尝试安排我的系统。

例如每天晚上 23:59,将调用特定函数并从数据库中检索满足特定查询的所有用户名和密码。

我还需要在某个日期之前发送短信,我在表格上指定了一个单独的列,它将保持在服务结束时发出的警报。

我很想听听有关想法以及如何开始搞乱系统调度或具体想法的实现。

感谢并原谅我的英语。

【问题讨论】:

  • 密码应该是单向散列的。你应该无法判断密码是否符合特定标准。如果你不这样做,你就是一个严重的安全隐患

标签: c# sms asp.net-mvc-4 scheduling


【解决方案1】:

最后我在全局 asax 中做到了。我不知道这是否是最好的方法,但它有效..

这里是代码。

protected void Application_Start()
    {
        try
        {

           .
           .
           .
            SetTimer();
        }
        catch (Exception ex)
        {
            ...
        }
    }


    private static void SetTimer()
    {
        DateTime tomorow = DateTime.Now.AddDays(1);
        DateTime midnight = new DateTime(tomorow.Year, tomorow.Month, tomorow.Day, 0, 0, 0);
        TimeSpan d = midnight - DateTime.Now;

        sTimer.Enabled = true;
        sTimer.Interval = d.TotalMilliseconds;
        sTimer.Elapsed += new System.Timers.ElapsedEventHandler(sTimer_Elapsed);
        sTimer.Start();
    }

    static void sTimer_Elapsed(object sender, System.Timers.ElapsedEventArgs e)
    {
        sTimer.Interval = TimeSpan.FromHours(24).TotalMilliseconds;
        db = new CompanyContext();

        //some func
        sendInOutUsers();            
        AlartUsers();
    }

【讨论】:

    【解决方案2】:

    您需要将调度作为 MVC 项目之外的单独组件进行。通常,您将创建一个始终在 IIS 服务器(或其他服务器)上运行的 Windows 服务项目,该项目将包括一个计时器,以按指定的时间表启动不同的任务。您可以在数据库中创建一个配置文件或一个包含计划和其他执行信息的表,然后从服务中查询此文件或表。

    【讨论】:

    • 您可以在部署前通过将服务安装在其他地方进行测试,可能是您自己的开发工作站。理想情况下,您需要有一个用于模拟生产的测试环境。
    【解决方案3】:

    在预定时间运行的服务器上使用单独的 Windows 服务怎么样?我亲自实现了这个,效果很好。

    【讨论】:

    • 然后从网络服务调用我的函数?
    • 您可以共享一个程序集,其中包含您想要在一定时间间隔内运行的功能以及您想要按需运行的功能。这将允许您的 Windows 服务器在午夜执行其功能,并且您的网站可以立即执行其功能。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-25
    • 2019-12-26
    • 2012-08-07
    • 2023-04-02
    • 1970-01-01
    相关资源
    最近更新 更多