del método QueueSystem.GetJobGroupWaitTime
Determina el tiempo previsto para la cola de trabajos de proceso del tipo especificado en un grupo de trabajo.
Espacio de nombres: WebSvcQueueSystem
Ensamblado: ProjectServerServices (en ProjectServerServices.dll)
Sintaxis
'Declaración
<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.GuidSeguimiento de GUID (JobGroupGUID) asignado a varias tareas.
messageType
Tipo: WebSvcQueueSystem.QueueMsgTypevalor de enumeración de QueueMsgType .
Valor devuelto
Tipo: System.Int32
Espera el número de segundos para los trabajos con el mismo trackingID y del tipo especificado para llevar a cabo.
Comentarios
El tiempo de espera esperado para trabajos sólo es aproximado, según los tiempos de espera promedio para trabajos de tipo similar. GetJobGroupWaitTime también tiene en cuenta la posición de los trabajos en la cola y la prioridad de correlación del trabajo.
Los nombres de los métodos PSI que utilizan la cola de proyecto o partes de horas que se inicie con cola, por ejemplo, QueueCreateProject y QueueUpdateTimesheet. Para establecer el GUID de seguimiento de los métodos PSI que utilizan la cola de proyecto o partes de horas, agregue el GUID de seguimiento al encabezado SOAP de cada servicio Web de PSI que se utiliza para las llamadas al método cola.
Permisos de Project Server
Permiso |
Descripción |
---|---|
Permite al usuario administrar la cola de Project Server. Permiso global. |
Ejemplos
El siguiente procedimiento muestra cómo modificar el método WebRequest para el servicio Web de proyecto.
Para agregar un GUID de seguimiento al encabezado SOAP para llamadas de PSI de Project: |
---|
|
El método GetExpectedGroupWaitTime en el siguiente ejemplo es en una clase denominada QueueSystemUtilities. El método devuelve el tiempo de espera previsto para el proyecto de publicar los datos que se enviarán a la base de datos de informes. Trabajos en el grupo se especifican mediante el parámetro trackingGuid . QueueSystemWS es un nombre arbitrario de QueueSystem referencia Web.
public int GetExpectedGroupWaitTime(QueueSystemWS.QueueSystem q,
Guid trackingGuid, QueueSystemWS.QueueMsgType msgType)
{
int wait = q.GetJobGroupWaitTime(trackingGuid, msgType);
return wait;
}
El siguiente fragmento de código hace que las llamadas normales a los métodos PSI donde el objeto Project agrega el GUID de seguimiento al encabezado SOAP, tal como se describe en el procedimiento 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";
. . .
Las llamadas de la QueueCreateProject y el QueuePublish usan el mismo GUID que se establece en los encabezados SOAP por el objeto ProjectDerived de seguimiento. El método QueuePublish genera trabajos en cola adicionales como enviar los datos del proyecto publicado en la base de datos de informes. El valor de jobGroupWaitTime muestra sólo el tiempo de espera esperado de la tarea de ReportingProjectPublish .
Vea también
Referencia
Espacio de nombres WebSvcQueueSystem