Método AlterEventLifetime(TPayload)
Altera o tempo de vida dos eventos no fluxo. Esse método pode alterar as horas de início e de término de um evento.
Namespace: Microsoft.ComplexEventProcessing.Linq
Assembly: Microsoft.ComplexEventProcessing (em Microsoft.ComplexEventProcessing.dll)
Sintaxe
public static CepStream<TPayload> AlterEventLifetime<TPayload>(
this CepStream<TPayload> source,
Expression<Func<CepEvent, DateTime>> startTimeFunc,
Expression<Func<CepEvent<TPayload>, TimeSpan>> lifeTimeFunc
)
Parâmetros de tipo
- TPayload
O tipo de carga do evento de entrada.
Parâmetros
- source
Tipo: Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TPayload> ) > ) >
Fluxo de entrada.
- startTimeFunc
Tipo: System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'CepEvent, DateTime> ) > ) >> ) > ) >
Função que define a nova hora de início dada a um evento.
- lifeTimeFunc
Tipo: System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'CepEvent< (Of < ( <'TPayload> ) > ) >, TimeSpan> ) > ) >> ) > ) >
Função que define o novo tempo de vida dado a um evento.
Valor de retorno
Tipo: Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TPayload> ) > ) >
Um novo fluxo com tempos de vida de evento alterados.
Observação sobre o uso
No Visual Basic e C#, você pode chamar esse método como um método de instância em qualquer objeto do tipo CepStream< (Of < ( <'TPayload> ) > ) >. Quando usar uma sintaxe de método de instância para chamar esse método, omita o primeiro parâmetro. Para obter mais informações, consulte https://msdn.microsoft.com/pt-br/library/bb384936(v=sql.105) ou https://msdn.microsoft.com/pt-br/library/bb383977(v=sql.105).
Comentários
Para obter mais informações, consulte Modificações de carimbo de data/hora.
Exemplos
O exemplo a seguir desloca o tempo do evento um minuto para trás, mas deixa a hora de término do evento inalterada (adicionando mais um minuto ao tempo de vida original) ao especificar o novo tempo de vida como o segundo parâmetro.
// shift event 1 minute into the past, but leave the end time (event duration) unchanged.
var newStream = inputStream.AlterEventLifetime(e => e.StartTime - TimeSpan.FromMinutes(1),
e => e.EndTime - e.StartTime + TimeSpan.FromMinutes(1));