如何像FB那样做通知日志?

时间:2017-03-06 07:18:09

标签: c# notifications async-await

我需要像FB一样进行通知功能。如果有人将新对象添加到系统中,我想将通知表中的条目放入所有用户,如“Tom添加了新对象”。信息。但它不会影响性能。

考虑Tom要在系统中添加新对象:

  1. Tom添加对象详细信息
  2. 保存对象详细信息
  3. 现在对象详细信息将传递给DB
  4. 如果成功保存,必须向Tom显示成功消息, 并行必须将通知条目放入所有用户。它 不影响汤姆的回应。因为,汤姆无需等到 完整的通知条目。
  5. 你能否提出你的想法来解决这个问题?

    注意:我尝试过asyn操作。但在某些情况下它不会起作用。当我等到该过程完成时,异步非常有效。

1 个答案:

答案 0 :(得分:1)

如果你想在不阻止你的请求的情况下完成运行后台任务这样的事情,你可能需要在 System.Web.Hosting 中使用下面的内容,即使在响应之后,它也会将你的代码作为后台任务运行发送,只要这些仍在运行,IIS就不会突然终止您的工作进程:

HostingEnvironment.QueueBackgroundWorkItem(cancellationToken =>
{
    // your code here that puts the entry in Notification table
});

但如果您的目的是仅在所有用户之间发送通知,则可以使用Signalr(https://www.asp.net/signalr