Метод QueueSystem.GetJobGroupWaitTimeSimple
Определяет максимальный ожидаемое время осталось для очереди проектов и расписаний для обработки группы указанного задания.
Пространство имен: WebSvcQueueSystem
Сборка: ProjectServerServices (в ProjectServerServices.dll)
Синтаксис
'Декларация
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/GetJobGroupWaitTimeSimple", RequestNamespace := "https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/", _
ResponseNamespace := "https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/", _
Use := SoapBindingUse.Literal, ParameterStyle := SoapParameterStyle.Wrapped)> _
Public Function GetJobGroupWaitTimeSimple ( _
trackingID As Guid _
) As Integer
'Применение
Dim instance As QueueSystem
Dim trackingID As Guid
Dim returnValue As Integer
returnValue = instance.GetJobGroupWaitTimeSimple(trackingID)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/GetJobGroupWaitTimeSimple", RequestNamespace = "https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/",
ResponseNamespace = "https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/",
Use = SoapBindingUse.Literal, ParameterStyle = SoapParameterStyle.Wrapped)]
public int GetJobGroupWaitTimeSimple(
Guid trackingID
)
Параметры
trackingID
Тип: System.GuidОтслеживание идентификатор GUID (JobGroupGUID), назначенный несколько заданий.
Возвращаемое значение
Тип: System.Int32
Ожидаемое количество секунд для всех заданий с одной trackingID для выполнения.
Замечания
Время ожидания ожидается для задания только приблизительно, например, на основании среднего времени ожидания для задания того же типа. GetJobGroupWaitTime учитывает положение у заданий в очереди и приоритет взаимосвязи задания.
Имена методы PSI, использующие очереди проекты или расписания начинаются с очереди, например QueueCreateProject и QueueUpdateTimesheet. Чтобы установить для отслеживания идентификатор GUID для методов PSI, использующие очереди проекты или расписания, добавление отслеживания GUID заголовка SOAP каждой веб-PSI службы, которая используется для вызова метода очереди.
Разрешения Project Server
Разрешение |
Описание |
---|---|
Позволяет пользователю управлять очередей Project Server. Глобальное разрешение. |
Примеры
В следующей процедуре показано, как изменять метод WebRequest для проекта веб-службы.
Добавление отслеживания GUID к заголовку SOAP для вызовов PSI проекта: |
---|
|
В следующем примере метод GetExpectedGroupWaitTime находится в классе с именем QueueSystemUtilities. Метод возвращает ожидаемого времени все задания очереди, связанные с методом QueueProjectPublish . Заданий в группе указанного с помощью параметра trackingGuid . QueueSystemWS не является произвольным именем QueueSystem веб-ссылку.
public int GetAllExpectedGroupWaitTime(QueueSystemWS.QueueSystem q,
Guid trackingGuid)
{
int wait = q.GetJobGroupWaitTime(trackingGuid, msgType);
return wait;
}
В следующем фрагменте кода вызывает обычных методы PSI где объект Project добавляет отслеживания GUID заголовок SOAP, как описано в предыдущей процедуре.
using System.Threading;
using PSLibrary = Microsoft.Office.Project.Server.Library;
. . .
private static QueueSystemWS.QueueSystem queueSystem =
new QueueSystemWS.QueueSystem();
private static QueueSystemUtils queueSystemUtils = new QueueSystemUtils();
. . .
ProjectWS.ProjectDataSet dsProject =
new ProjectWS.ProjectDataSet();
ProjectWS.ProjectDataSet.ProjectRow projectRow =
dsProject.Project.NewProjectRow();
Guid projectGuid = Guid.NewGuid();
projectRow.PROJ_UID = projectGuid;
projectRow.PROJ_NAME = "Name of Project";
projectRow.PROJ_TYPE =
Convert.ToInt32(PSLibrary.Project.ProjectType.Project);
dsProject.Project.AddProjectRow(projectRow);
// Create the queue job and tracking GUIDs, and then set the tracking
// GUID for SOAP calls to the derived Project object.
Guid jobGuid = Guid.NewGuid();
Guid trackingGuid = Guid.NewGuid();
SomeNameSpace.ProjectWS.ProjectDerived.SetTrackingGuid(trackingGuid);
bool validateOnly = false;
// Create and save project to the Draft database.
projectDerived.QueueCreateProject(jobGuid, dsProject, validateOnly);
// Wait a few seconds, or create a WaitForQueue method.
Thread.Sleep(3000);
ProjectWS.ProjectRelationsDataSet dsProjectRelations =
new ProjectWS.ProjectRelationsDataSet();
jobGuid = Guid.NewGuid();
string wssUrl = "" // Default SharePoint project workspace,
bool fullPublish = true;
// Publish the project to the Published database.
dsProjectRelations = projectDerived.QueuePublish(jobGuid, projectGuid, fullPublish, wssUrl);
// Try various wait times to see the effect of additional queue jobs
// spawned by QueuePublish.
Thread.Sleep(500);
QueueSystemWS.QueueMsgType msgType = QueueSystemWS.QueueMsgType.ReportingProjectPublish;
int jobGroupWaitTime = queueSystemUtils.GetAllExpectedGroupWaitTime(queueSystem, trackingGuid);
string waitTime = "After QueuePublish:\t\t" + jobGroupWaitTime.ToString() + " seconds for all related jobs";
Как QueueCreateProject , так и QueuePublish вызовы используют же отслеживания идентификатор GUID, которая задается в заголовках SOAP объектом ProjectDerived . Метод QueuePublish порождает задания дополнительные очереди, таких как отправка данных опубликованных проектов в базе данных отчетов. Значение jobGroupWaitTime показывает время ожидания ожидаемый всех связанных заданий, существующие в каждую из очередей.
См. также
Справочные материалы
Пространство имен WebSvcQueueSystem