Class RateLimitingExecutor

  • All Implemented Interfaces:
    java.lang.Runnable, tigase.kernel.beans.Initializable, tigase.kernel.beans.UnregisterAware, Executor

    @Bean(name="publishExecutor",
          parent=PubSubComponent.class,
          active=true,
          exportable=true)
    public class RateLimitingExecutor
    extends AbstractQueuingExecutor
    implements java.lang.Runnable, tigase.kernel.beans.Initializable
    Class implements an executor limiting number of executions of submitted tasks per second.
    • Constructor Detail

      • RateLimitingExecutor

        public RateLimitingExecutor()
    • Method Detail

      • getLimit

        public long getLimit()
      • setLimit

        public void setLimit​(long limit)
      • run

        public void run()
        Specified by:
        run in interface java.lang.Runnable
      • getSleepTime

        protected long getSleepTime()
        Calculate best sleep time for current limit value.
        Returns:
      • initialize

        public void initialize()
        Specified by:
        initialize in interface tigase.kernel.beans.Initializable
      • beforeUnregister

        public void beforeUnregister()
        Specified by:
        beforeUnregister in interface tigase.kernel.beans.UnregisterAware
        Overrides:
        beforeUnregister in class AbstractQueuingExecutor