SQL 代理在SQL Azure 数据库上不可用。安排日常工作的推荐方法是什么?我在 codeplex 上找到了 sqlazureagent,但我对人们在实践中使用的东西感兴趣。
4 回答
Azure 上的最新更新现在提供了可以添加到 Azure 订阅的附加组件,并且根据你的使用情况,它可能是免费的,也可能需要花费一些钱。
- Aditi Tech - Scheduler 就是这样的一个附加组件
此外,调度程序已添加到移动服务中,允许您创建可以每 X 分钟、天、小时或月运行一次的脚本。这在Create a new schedule job中有很好的描述。详细的例子可以参考Windows Azure中的Job scheduling
根据您的需要,您甚至可以在 Azure 虚拟机上使用 Windows 任务计划程序。您可以像在本机 Windows 机器上使用的那样安排任务。可以在此处和此处找到示例。
您可以使用辅助角色在特定时间使用可用框架来安排和执行某些任务,例如:
- TaskScheduler在 github 上可用。
- 在 Windows Azure 中构建任务计划程序
- Codeplex 的Azure 工具包。
我建议在 Azure 本身中使用移动服务调度程序。不久前我正在寻找这个,并偶然发现了 Sandrino Di Mattia 的这篇出色的帖子。希望这可以帮助。
这取决于您要将 SQL 代理用于什么目的。我过去看到的大多数 SQL 代理作业都是计划备份或 SSIS 包。这两者在 SQL Azure 中都不相关。SQL Azure 备份计划是通过 Azure 门户完成的,SSIS 不适用。
您可能想要执行的其他计划维护任务(例如重建索引或移动数据)将需要手动执行。我建议您使用 ASP MVC Web API 构建一个小应用程序,其中包含您要执行的脚本。如果需要,您可以将它作为 Azure 网站免费运行。然后从外部调度程序调用该服务。Kin 对您的问题的回答提供了一些选择。就我个人而言,我使用setcronjob,它适合我们的需求并且每年只花费我 10 美元。
也许提供您想在问题中安排的具体示例,以便可以提供特定于解决方案的答案。
如果您的目标是安排存储过程的执行,您可能会对我们的Cotega服务感兴趣。