ShiftEventTime(TPayload) 方法 (CepStream(TPayload), Expression(Func(CepEvent, DateTime)))
将事件的开始时间调整为新时间戳而不更改生存期。
命名空间: Microsoft.ComplexEventProcessing.Linq
程序集: Microsoft.ComplexEventProcessing(在 Microsoft.ComplexEventProcessing.dll 中)
语法
public static CepStream<TPayload> ShiftEventTime<TPayload>(
this CepStream<TPayload> source,
Expression<Func<CepEvent, DateTime>> shiftExpr
)
类型参数
- TPayload
输入事件负载的类型。
参数
- source
类型:Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TPayload> ) > ) >
输入流。
- shiftExpr
类型:System.Linq.Expressions. . :: . .Expression< (Of < ( <'Func< (Of < ( <'CepEvent, DateTime> ) > ) >> ) > ) >
定义新开始时间的表达式。
返回值
类型:Microsoft.ComplexEventProcessing.Linq. . :: . .CepStream< (Of < ( <'TPayload> ) > ) >
具有推移的事件开始时间的流。
用法说明
在 Visual Basic 和 C# 中,您可以对 CepStream< (Of < ( <'TPayload> ) > ) > 类型的任何对象将此方法作为实例方法调用。在您使用实例方法语法调用此方法时,将忽略第一个参数。有关详细信息,请参阅https://msdn.microsoft.com/zh-cn/library/bb384936(v=sql.105)或https://msdn.microsoft.com/zh-cn/library/bb383977(v=sql.105)。
注释
有关详细信息,请参阅时间戳修改。
示例
以下示例将流中每个事件的开始时间往后推 15 分钟。
// shift events by 15 minutes into the future.
var shifted = inputStream.ShiftEventTime(e => e.StartTime + TimeSpan.FromMinutes(15));
以下示例将流中每个事件的开始时间往前推 1 小时。
// shift events by 1 hour into the past.
var shifted = inputStream.ShiftEventTime(e => e.StartTime - TimeSpan.FromHours(1));