Web 作业和大型数据库查询

Webjobs and large database queries

如果需要查询包含 100,000 多行结果集的数据库。然后我需要在哪里处理这些数据。这可以在连续的网络作业中成功完成吗?如果是这样,队列是如何管理的?我目前有这个问题

Webjob query being limited by take not processing any further data when triggered, or when being interrupted will not continue processing queue

其中讨论了使用带有时间触发器的连续 webjob 的问题。如果 webjob 重新启动,队列将被转储,转储的意思是队列不会被进一步处理。如果使用 take 来限制查询中的行,则下一个 pollevent 不会处理任何数据。

这些 webjobs 在幕后进行了很多管理,其中有一些很难很好地掌握以管理大型队列。

我的问题:

网络作业适合处理大量数据吗?

如果是,它们应该是连续的还是按计划的?为什么?

Are webjobs suited to processing large amounts of data?

当然可以,为什么不呢?如果出于某种原因,您不信任 WebJobs SDK,那么没有什么可以阻止您编写一个普通的控制台应用程序来执行所有处理并将其部署为 WebJob。这样就不会向您隐藏任何内容或 "managed away"。

If so, should they be continuous or scheduled and why?

连续的 WebJob 通常在触发器的上下文中有意义。 您有一些工作等待处理,您使用存储队列消息或您选择的其他机制 (custom triggers) 发出信号。

一个预定的 WebJob,好吧......它按计划工作。你是否有一个?那就这样吧。

如果其中 none 足以形成一个明确的选择,为什么不根据您自己的外部逻辑手动触发它呢?

来自https://github.com/projectkudu/kudu/wiki/WebJobs-API#invoke-a-triggered-job

Invoke a triggered job
POST /api/triggeredwebjobs/{job name}/run