【问题标题】:Simple scheduler library db for SQL Server in AzureAzure 中 SQL Server 的简单调度程序库 db
【发布时间】:2013-10-21 11:05:14
【问题描述】:

我想安排运行简单的 SP 以在我的 Azure DB 中运行。选项:运行一次,按天、周、月简单重复。由于 Azure 中没有 SQL Server 代理,我想知道是否有任何简单的调度库 db 具有此功能。我不想重新发明轮子。

请不要建议在外部运行 SQL Server 代理并连接到 Azure DB 那不是和选项。

如果没有这样的 T-SQL 库(我必须从头开始实现它),谁能指出我如何实现简单的循环运行 SP,它在 Azure 中每隔 5 秒运行一次 em>。

提前谢谢

【问题讨论】:

  • “要求我们推荐或查找工具、库或最喜欢的非现场资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。相反,describe the problem 和什么到目前为止已经解决了这个问题。” What topics can I ask about here?

标签: sql-server azure


【解决方案1】:

如果您可以从 WorkerRole 执行,请使用 FluentScheduler。理想情况下,此类后台作业应仅从工作角色执行。

不过,这个库也可以从 web 应用程序 调度。但我不喜欢这样,因为我们可能有多个 web 角色,在 web 应用程序中使用时要小心。

我在 Azure (WorkerRole) 上为我的应用程序使用 FluentScheduler,效果很好。它也很容易实现。

示例

 Schedule<DailyDigest>().ToRunNow().AndEvery(5).Seconds();
 Schedule<DailyDigest>().ToRunOnceAt(18, 0).AndEvery(24).Hours();
 Schedule<WeeklyDigest>().ToRunOnceAt(DateTime.Now.StartOfWeek(DayOfWeek.Sunday).AddHours(18)).AndEvery(1).Weeks();

在上面的例子中,DailyDigestWeeklyDigest是继承自ITASK的类

public class DailyDigest : ITask
{
    public void Execute()
    {
        //Get Daily digest

        
    }
}

public class WeeklyDigest : ITask
{
    public void Execute()
    {
        //Weekly Digest
    }
}

从 github 获取这个库 https://github.com/jgeurts/FluentScheduler

使用 Nuget Install-Package FluentScheduler

【讨论】:

    【解决方案2】:

    未内置在 Azure SQL 中 - 但有允许调度的 3rd 方服务(此处提到了 Aditi 和 Cotega http://social.technet.microsoft.com/Forums/exchange/en-US/b2ae724f-4509-4c0f-aef4-58ce8be60f1a/is-there-an-equivalent-job-regular-sql-server?forum=ssdsgetstarted

    如果您有可用的辅助角色(或在 Azure 中运行的其他虚拟机) - 您可以推出自己的计划流程。显然,这涉及为计算时间付费。

    如果这是一个选项(即您为启动虚拟机付费) - 您还可以选择在自己的虚拟机上运行自己的 SQL Server 实例并使用“标准”SQL Server(使用标准代理,等) - 而不是在 Azure SQL 中托管您的数据库。这将是一个非常昂贵的选择......

    就个人而言,我会考虑使用移动服务来调用 SP,然后设计一种方法来安排对服务的调用。不健壮-但又快又脏又吱吱……

    【讨论】:

      【解决方案3】:

      Microsoft 刚刚发布了 Windows Azure Scheduler,其中包括一个免费层。见pricing page

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-05-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-02-19
        • 1970-01-01
        相关资源
        最近更新 更多