我有一个用C#(.NET 1.1)编写的服务,并希望它在每晚的午夜执行一些清理操作.我必须保留服务中包含的所有代码,那么最简单的方法是什么?使用Thread.Sleep()和检查滚动的时间?
我正在使用Hangfire,非常喜欢这个软件!但我缺少的一件事是如何添加每隔几分钟执行一次的定期工作(例如每15分钟执行一次).有没有办法实现这个目标?
虽然这个问题特别适用于Azure,但我确信这是云计算的常见情况.
我有一个我需要在某个时间运行的任务列表.使用窗口的服务器,我可以使用任务计划程序并安排我的程序在特定时间运行.我可以更进一步,创建一个以给定间隔运行的Windows服务,然后执行适当的任务.
有没有人对云计算环境有最佳方法的建议?
我可以创建一个工作者角色,每秒轮询一次任务列表,然后将相应的任务抛出到由另一个工作者角色处理的队列中.
我可以创建一个每天运行一次的工作者角色,抓取所有任务并将它们提交到队列中.然后,处理器角色将一个项目从队列中拉出并在适当的时间处理.
还有其他建议吗?
我有一个简单的Azure Worker角色运行,每隔几秒执行一次任务.下面是完成此任务的代码.
    public override void Run()
    {
        try
        {
            while (true)
            {
                DoSomething();
                System.Threading.Thread.Sleep(3000);
            }
        }
        catch (Exception ex)
        {
            Log.Add(ex, true);
        }            
    }
我现在要做的是添加第二个任务DoSomethingElse(),它每天触发一次,每天只触发一次.我想到了几种方法来实现这个目标:
前两个解决方案让我觉得非常脆弱,没有额外的代码来处理服务停止和重新启动的情况.第三种解决方案让我感到有些过度杀伤.
我的问题是,在Azure工作者角色中以不同的时间间隔安排任务的最佳做法是什么?我有点偏爱直接使用.NET而不使用第三方库(虽然我不排除它).
注意,上面的#3来自这个较老的问题推荐一个C#任务调度库