Compartilhar via


SPWorkItemJobDefinition class

Serve como a classe base para derivar definições dos trabalhos de timer de item de trabalho. Essa classe funciona com o trabalho de timer (SPTimerService) para processar os itens de trabalho (instâncias deSPWorkItem ).

Inheritance hierarchy

System.Object
  Microsoft.SharePoint.Administration.SPAutoSerializingObject
    Microsoft.SharePoint.Administration.SPPersistedObject
      Microsoft.SharePoint.Administration.SPJobDefinition
        Microsoft.SharePoint.Administration.SPPausableJobDefinition
          Microsoft.SharePoint.Administration.SPWorkItemJobDefinition

Namespace:  Microsoft.SharePoint.Administration
Assembly:  Microsoft.SharePoint (in Microsoft.SharePoint.dll)

Syntax

'Declaração
<GuidAttribute("611573DB-FDED-471e-9249-D899956FBD3F")> _
<SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel := True)> _
<SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel := True)> _
Public Class SPWorkItemJobDefinition _
    Inherits SPPausableJobDefinition
'Uso
Dim instance As SPWorkItemJobDefinition
[GuidAttribute("611573DB-FDED-471e-9249-D899956FBD3F")]
[SharePointPermissionAttribute(SecurityAction.InheritanceDemand, ObjectModel = true)]
[SharePointPermissionAttribute(SecurityAction.LinkDemand, ObjectModel = true)]
public class SPWorkItemJobDefinition : SPPausableJobDefinition

Comentários

Essa classe trabalha em conjunto com as classes SPWorkItem e SPWorkItemCollection . Você deve usar a classe de coleção ao qual o objeto SPSite tem acesso para adicionar itens de trabalho para a fila de processamento. Quando o trabalho de timer de item de trabalho é executado, ele extrai itens da fila de trabalho em lotes com base no tipo de item de trabalho (Type). Itens de trabalho são fornecidos para o método de ProcessWorkItems em pedidos de cluster, que é especificado usando o BatchId.

Você deve substituir dois métodos dessa classe: WorkItemType e ProcessWorkItems. No entanto, observe que há duas variantes do método ProcessWorkItems :

É importante observar o valor de LockType selecionado para a definição de trabalho. (Consulte a enumeração SPJobLockType .)

Se o tipo de bloqueio for ContentDatabase, o trabalho de timer bloqueia um banco de dados inteiro (instância deSPContentDatabase ) e processa todos os itens de trabalho executáveis no banco de dados (e seus conjuntos de sites) antes de passar para o próximo. Na maioria dos casos, esse é um método automático limitante.

Se o tipo de bloqueio for None, você pode ter vários computadores front-end, trabalhando com o trabalho de timer especificado, que oferece um desempenho muito maior. Quando você não estiver usando bloqueios o trabalho de timer, lidar com os itens de trabalho propriamente ditos (que são automaticamente bloqueio) bloqueio de item de trabalho. Tipo de bloqueio None é o valor padrão.

LockType valor Job fornece bloqueios no nível do trabalho de timer e impede que o trabalho seja executado em mais de um computador ao mesmo tempo.

Em geral, a menos que você tenha um motivo específico e convincente para bloquear um todo banco de dados de conteúdo, é recomendável que você não use bloqueios (ou seja, use o padrão, None).

A diferença entre as duas variantes do método ProcessWorkItems em que o segundo fornece um parâmetro Boolean , continueProcessing. Trabalho de definições criadas usando este construtor quando o tipo de bloqueio é None, funcionam itens continuam a processar até que permaneçam sem itens de trabalho.

Thread safety

Any public static (Shared in Visual Basic) members of this type are thread safe. Any instance members are not guaranteed to be thread safe.

Ver também

Referência

SPWorkItemJobDefinition members

Microsoft.SharePoint.Administration namespace

Microsoft.SharePoint.Administration.SPTimerService

Microsoft.SharePoint.SPWorkItem

SPWorkItem.Type

Microsoft.SharePoint.SPWorkItemCollection

SPJobDefinition.LockType

Microsoft.SharePoint.Administration.SPJobLockType

Microsoft.SharePoint.Administration.SPContentDatabase

Microsoft.SharePoint.SPSite