QueueSystem.GetJobGroupWaitTime método
Determina o tempo estimado para a fila de trabalhos de processo do tipo especificado em um grupo de trabalho.
Namespace: WebSvcQueueSystem
Assembly: ProjectServerServices (em ProjectServerServices.dll)
Sintaxe
'Declaração
<SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/GetJobGroupWaitTime", 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 GetJobGroupWaitTime ( _
trackingID As Guid, _
messageType As QueueMsgType _
) As Integer
'Uso
Dim instance As QueueSystem
Dim trackingID As Guid
Dim messageType As QueueMsgType
Dim returnValue As Integer
returnValue = instance.GetJobGroupWaitTime(trackingID, _
messageType)
[SoapDocumentMethodAttribute("https://schemas.microsoft.com/office/project/server/webservices/QueueSystem/GetJobGroupWaitTime", 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 GetJobGroupWaitTime(
Guid trackingID,
QueueMsgType messageType
)
Parâmetros
trackingID
Tipo: System.GuidControlando o GUID (JobGroupGUID) atribuído aos vários trabalhos.
messageType
Tipo: WebSvcQueueSystem.QueueMsgTypevalor de enumeração QueueMsgType .
Valor retornado
Tipo: System.Int32
Número de segundos para trabalhos com o mesmo trackingID e do tipo especificado para a conclusão de espera.
Comentários
O tempo de espera esperada para trabalhos só está aproximado, com base nos tempos de espera médio para trabalhos do tipo semelhante. GetJobGroupWaitTime também leva em consideração a posição que têm dos trabalhos em fila e a prioridade de correlação de trabalho.
Os nomes dos métodos PSI que usam essa fila de projeto ou quadro de horários começam com fila, por exemplo, QueueCreateProject e QueueUpdateTimesheet. Para definir o métodos PSI que usam essa fila de projeto ou quadro de horários do GUID de rastreamento, adicione o GUID de rastreamento ao cabeçalho SOAP de cada serviço Web de PSI que você usa para as chamadas de método de fila.
Permissões do Project Server
Permissão |
Descrição |
---|---|
Permite ao usuário gerenciar a fila do Project Server. Permissão global. |
Exemplos
O procedimento a seguir mostra como modificar o método WebRequest para o serviço Web do projeto.
Para adicionar um controle GUID ao cabeçalho SOAP para chamadas de PSI do projeto: |
---|
|
O método GetExpectedGroupWaitTime no exemplo a seguir está em uma classe denominada QueueSystemUtilities. O método retornará o tempo de espera esperada para o projeto publicar dados a serem enviados para o banco de dados de relatórios. Trabalhos no grupo são especificados pelo parâmetro trackingGuid . QueueSystemWS é um nome arbitrário de QueueSystem referência da Web.
public int GetExpectedGroupWaitTime(QueueSystemWS.QueueSystem q,
Guid trackingGuid, QueueSystemWS.QueueMsgType msgType)
{
int wait = q.GetJobGroupWaitTime(trackingGuid, msgType);
return wait;
}
O fragmento de código a seguir faz com que as chamadas normais para os métodos PSI onde o objeto Project adiciona o GUID de rastreamento ao cabeçalho SOAP, conforme descrito no procedimento anterior.
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.GetExpectedGroupWaitTime(queueSystem, trackingGuid, msgType);
string waitTime = "After QueuePublish:\t\t" + jobGroupWaitTime.ToString() + " seconds for the ReportingProjectPublish job";
. . .
As chamadas de QueueCreateProject tanto o QueuePublish usar o mesmo GUID que é definido pelo objeto ProjectDerived nos cabeçalhos SOAP de rastreamento. O método QueuePublish gera trabalhos em fila adicionais por exemplo, enviar os dados de projeto publicado no banco de dados de relatórios. O valor de jobGroupWaitTime mostra apenas o tempo de espera esperada do trabalho ReportingProjectPublish .