如何并行执行ABP通知?

时间:2019-01-14 21:50:36

标签: c# notifications signalr aspnetboilerplate

我目前正在使用ASP.NET Boilerplate模式,它的效果很好。我能够毫无问题地发送通知。

我现在遇到的问题是发送很多通知。有什么方法可以并行执行ABP通知,或者有什么建议可以使其更快地执行?

任何帮助将不胜感激。

// AppNotifier.cs

public void ContactTransferred(long userId)
{
    var notificationData = new Abp.Notifications.NotificationData();

    _notificationPublisher.Publish(
        AppNotificationNames.ContactTransferredAlert,
        notificationData,
        severity: NotificationSeverity.Info,
        userIds: new long[] { userId }
    );
}

// Usage

private readonly IAppNotifier _appNotifier;

foreach (Contact c in cList) // cList has 2000+ count
{
    _appNotifier.ContactTransferred(c.Id);
}

1 个答案:

答案 0 :(得分:1)

你为什么不喜欢这个

// AppNotifier.cs

public void ContactTransferred(long[] userIdList)
{
    var notificationData = new Abp.Notifications.NotificationData();

    _notificationPublisher.Publish(
        AppNotificationNames.ContactTransferredAlert,
        notificationData,
        severity: NotificationSeverity.Info,
        userIds: userIdList
    );
}

// Usage

private readonly IAppNotifier _appNotifier;

var contactIdList =  cList.Select(c=>c.Id).ToArray();
_appNotifier.ContactTransferred(contactIdList );