【发布时间】:2017-06-21 15:24:44
【问题描述】:
我们有一个 API 可以根据预定的 Next_Refresh_Time 获取用户的最新交易数据。每个用户都有不同的计划刷新时间。由于我们有成千上万的用户,我们必须运行调度程序来获取数据。请建议我最好的方法。
【问题讨论】:
标签: azure azure-webjobs azure-scheduler
我们有一个 API 可以根据预定的 Next_Refresh_Time 获取用户的最新交易数据。每个用户都有不同的计划刷新时间。由于我们有成千上万的用户,我们必须运行调度程序来获取数据。请建议我最好的方法。
【问题讨论】:
标签: azure azure-webjobs azure-scheduler
每个用户都有不同的计划刷新时间。由于我们有成千上万的用户,我们必须运行调度程序来获取数据。
您可以添加一个队列消息并在用户登录时指定initialVisibilityDelay 和Next_Refresh_Time 值,然后您可以创建并运行Queue-trigger WebJob 来处理队列消息并获取最新数据(如果当前用户是仍然在线,将消息(指定与原始消息相同的内容和 initialVisibilityDelay)添加到队列中)。
此外,如果您想将最新数据实时推送给特定的连接用户,SignalR 将帮助您实现实时功能,并且 SignalR 可用于各种client platforms。您可以将登录用户的连接ID保存在队列消息中,然后您可以调用WebJob函数中的hub方法根据连接ID将数据推送给连接的用户。
以下线程和文章将有助于了解如何建立连接和调用集线器方法。
【讨论】:
The transaction API should be triggered from the background process. 正如我在回复的第一部分中提到的,您可以在用户登录或添加/创建用户时为每个用户添加队列消息,然后运行 Queue-trigger WebJob 来处理队列消息并调用 API 获取最新数据并将其存储在数据库中。