using System; using System.Collections.Generic; using System.Text; namespace Edge.Core.UniversalApi.CommunicationProvider { internal interface IEventThrottler { /// <summary> /// mute an event from a processor instance for a while, mostly used for limit the frequently firing events. /// </summary> /// <param name="processorMetaConfigName">used for identify a processor's instance</param> /// <param name="eventName"></param> /// <param name="eventBatchId">only the event data contains the batch id can support throttling</param> /// <param name="period">null for remove the throttle for target event</param> void Throttle(string processorMetaConfigName, string eventName, string eventBatchId, TimeSpan? period); } }