运行 每个用户的后台任务
Run tasks in background per user
我正在制作一个主页,我可以在其中组织我所有的书签、做笔记、日历、将内容添加到愿望清单等。我想要的其中一件事是将我的电子邮件帐户与之同步,我看到我可以为此使用 mailkit 。我计划,比方说,每五分钟,该应用程序获取电子邮件以了解有多少未读电子邮件。但是我遇到了一些问题:
有了这个 guide 我看到我可以 运行 计划任务,所以我可以像 cron 作业一样使用它,但问题是该任务对所有用户都是通用的,我不能只获取已连接用户的电子邮件。
我认为的一个解决方案是让 jQuery 通过 ajax 向 api 发出请求,并使用计时器每五分钟向 运行 发出一次请求,但是如果我有网络在两个选项卡中打开,我正在为每个选项卡请求使服务器过载。
我能做什么或最好的方法是什么?
您的 IHostedService 应该是通用的,即您不会为每个用户提供一个,而只有一个能够处理多个用户。要开始监视特定用户,您只需以某种方式 "subscribe" 他们。这可能就像向后台服务将检查的数据库添加一些内容一样简单,或者您可以使用消息队列之类的东西。在任何一种情况下,您的后台服务都会检查此商店以查看它需要为哪些用户获取信息,然后逐个处理它们。
我正在制作一个主页,我可以在其中组织我所有的书签、做笔记、日历、将内容添加到愿望清单等。我想要的其中一件事是将我的电子邮件帐户与之同步,我看到我可以为此使用 mailkit 。我计划,比方说,每五分钟,该应用程序获取电子邮件以了解有多少未读电子邮件。但是我遇到了一些问题:
有了这个 guide 我看到我可以 运行 计划任务,所以我可以像 cron 作业一样使用它,但问题是该任务对所有用户都是通用的,我不能只获取已连接用户的电子邮件。
我认为的一个解决方案是让 jQuery 通过 ajax 向 api 发出请求,并使用计时器每五分钟向 运行 发出一次请求,但是如果我有网络在两个选项卡中打开,我正在为每个选项卡请求使服务器过载。
我能做什么或最好的方法是什么?
您的 IHostedService 应该是通用的,即您不会为每个用户提供一个,而只有一个能够处理多个用户。要开始监视特定用户,您只需以某种方式 "subscribe" 他们。这可能就像向后台服务将检查的数据库添加一些内容一样简单,或者您可以使用消息队列之类的东西。在任何一种情况下,您的后台服务都会检查此商店以查看它需要为哪些用户获取信息,然后逐个处理它们。