2016-01-16 5 views
2

На тестовой машине при отправке запроса на FRONT END у меня отличный ответ (две секунды). При производстве запрос занимает 30 секунд и более, организация насчитывает более 5000 пользователей. Если у вас есть другой, чтобы получить статус SIP с помощью UCMA? UCWA не может использовать. любая идея?Ucma4 Delayed Response при использовании PresenceServices BeginPresenceQuery

Код:

public Dictionary<string, string> GetAgentsAvailability(List<string> usersUris) 
{ 
    lock (lockObj) 
    { 
     AgentsAvailability = new Dictionary<string, string>(); 
     try 
     { 
      if (usersUris != null && usersUris.Count > 0) 
      { 
       IAsyncResult agentAvailabilityCheck = ApplicationEndPoint.PresenceServices.BeginPresenceQuery(usersUris, new string[] { "state" },null, null); 
       WaitHandle[] w = new WaitHandle[] { agentAvailabilityCheck.AsyncWaitHandle }; 
       WaitHandle.WaitAll(w, 3000); 
      } 
      else 
      { 
       WriteEntry.ELog("Platform - GetAgentsAvailability - No Agent SIPs to check.", EventLogEntryType.Information); 
      } 
     } 
     catch (Exception ex) 
     { 
      WriteEntry.ELog(ex.ToString(), EventLogEntryType.Error); 
      throw; 
     } 
     return AgentsAvailability; 
    } 
} 

ответ

1

Для такого большого количества пользователей, я бы рекомендовал использовать Presence подписки сообщить вам о текущих присутствия и присутствия изменений, а не пытаться проверить наличие всех пользователей одновременно ,

Обратитесь к следующей статье Microsoft по работе с Присутствием и группами для получения более подробной информации https://msdn.microsoft.com/en-us/library/office/hh456406(v=office.14).aspx

Там довольно много по ссылке выше, но функциональность вы после центрируется на RemotePresenceView класса.