在 Azure webapps 上实施 LONG 后台任务
Implementing LONG background tasks on Azure webapps
情况:
一位用户在我们的 Azure blob 存储上拥有 TB 级的文件,在我们的 Azure 数据库中拥有数 GB 级的存储空间,他决定离开我们的服务。此时,我们需要将他的数据全部导出到2GB的包中,存放在blob存储中,短期(两周左右)。
这种情况应该很少发生,我们正在努力削减成本。在一两天内下载相应用户的 blob(240 KB 文件)并将它们压缩到包中的任务在哪里实施最合适?
我看过一个单独的 webapp 运行 一个专用的连续 webjob,但 webjobs 似乎在应用程序卸载时关闭,我需要它休眠并且在未启动时不使用资源 运行,所以 "Always on" 出来了。另外,我似乎找不到关于如何实现接口的完整教程,所以我可能会取消 运行 任务等。
我们的最后一招是放弃 webapps(其中三个),运行 将其全部放在虚拟机上,但这会带来更大的成本。有没有我错过的方法可以完成工作?
对我来说,这听起来像是 Azure Functions 上的无服务器模型的工作。您无需为闲置资源付费即可获得所需的计算规模。
我认为 运行 该函数没有任何时间限制(与 AWS Lambda 不同),但即便如此,您可能还是希望先实现一些功能来拆分作业,以便它可以并行处理(并提供一些故障恢复能力)。将这些任务排队并触发队列外的功能。
值得注意的是,他们目前仍在 'preview'。
编辑 - 刚刚注意到您对文件大小的评论...这可能是个问题,但理论上您应该能够使用本地存储而不是全部在内存中完成。
情况:
一位用户在我们的 Azure blob 存储上拥有 TB 级的文件,在我们的 Azure 数据库中拥有数 GB 级的存储空间,他决定离开我们的服务。此时,我们需要将他的数据全部导出到2GB的包中,存放在blob存储中,短期(两周左右)。
这种情况应该很少发生,我们正在努力削减成本。在一两天内下载相应用户的 blob(240 KB 文件)并将它们压缩到包中的任务在哪里实施最合适?
我看过一个单独的 webapp 运行 一个专用的连续 webjob,但 webjobs 似乎在应用程序卸载时关闭,我需要它休眠并且在未启动时不使用资源 运行,所以 "Always on" 出来了。另外,我似乎找不到关于如何实现接口的完整教程,所以我可能会取消 运行 任务等。
我们的最后一招是放弃 webapps(其中三个),运行 将其全部放在虚拟机上,但这会带来更大的成本。有没有我错过的方法可以完成工作?
对我来说,这听起来像是 Azure Functions 上的无服务器模型的工作。您无需为闲置资源付费即可获得所需的计算规模。
我认为 运行 该函数没有任何时间限制(与 AWS Lambda 不同),但即便如此,您可能还是希望先实现一些功能来拆分作业,以便它可以并行处理(并提供一些故障恢复能力)。将这些任务排队并触发队列外的功能。
值得注意的是,他们目前仍在 'preview'。
编辑 - 刚刚注意到您对文件大小的评论...这可能是个问题,但理论上您应该能够使用本地存储而不是全部在内存中完成。