Package rx.plugins

Class RxJavaSchedulersHook


  • public class RxJavaSchedulersHook
    extends java.lang.Object
    This plugin class provides 2 ways to customize Scheduler functionality 1. You may redefine entire schedulers, if you so choose. To do so, override the 3 methods that return Scheduler (io(), computation(), newThread()). 2. You may wrap/decorate an Action0, before it is handed off to a Scheduler. The system- supplied Schedulers (Schedulers.ioScheduler, Schedulers.computationScheduler, Scheduler.newThreadScheduler) all use this hook, so it's a convenient way to modify Scheduler functionality without redefining Schedulers wholesale. Also, when redefining Schedulers, you are free to use/not use the onSchedule decoration hook.

    See RxJavaPlugins or the RxJava GitHub Wiki for information on configuring plugins: https://github.com/ReactiveX/RxJava/wiki/Plugins.

    • Constructor Detail

      • RxJavaSchedulersHook

        public RxJavaSchedulersHook()
    • Method Detail

      • createComputationScheduler

        @Experimental
        public static Scheduler createComputationScheduler​(java.util.concurrent.ThreadFactory threadFactory)
        Create an instance of the default Scheduler used for Schedulers.computation() except using threadFactory for thread creation.
        Parameters:
        threadFactory - the factory to use for each worker thread
        Returns:
        the created Scheduler instance
      • createIoScheduler

        @Experimental
        public static Scheduler createIoScheduler​(java.util.concurrent.ThreadFactory threadFactory)
        Create an instance of the default Scheduler used for Schedulers.io() except using threadFactory for thread creation.
        Parameters:
        threadFactory - the factory to use for each worker thread
        Returns:
        the created Scheduler instance
      • createNewThreadScheduler

        @Experimental
        public static Scheduler createNewThreadScheduler​(java.util.concurrent.ThreadFactory threadFactory)
        Create an instance of the default Scheduler used for Schedulers.newThread() except using threadFactory for thread creation.
        Parameters:
        threadFactory - the factory to use for each worker thread
        Returns:
        the created Scheduler instance
      • getComputationScheduler

        public Scheduler getComputationScheduler()
        Scheduler to return from Schedulers.computation() or null if default should be used. This instance should be or behave like a stateless singleton;
        Returns:
        the current computation scheduler instance
      • getIOScheduler

        public Scheduler getIOScheduler()
        Scheduler to return from Schedulers.io() or null if default should be used. This instance should be or behave like a stateless singleton;
        Returns:
        the created Scheduler instance
      • getNewThreadScheduler

        public Scheduler getNewThreadScheduler()
        Scheduler to return from Schedulers.newThread() or null if default should be used. This instance should be or behave like a stateless singleton;
        Returns:
        the current new thread scheduler instance
      • onSchedule

        @Deprecated
        public Action0 onSchedule​(Action0 action)
        Deprecated.
        Invoked before the Action is handed over to the scheduler. Can be used for wrapping/decorating/logging. The default is just a pass through.
        Parameters:
        action - action to schedule
        Returns:
        wrapped action to schedule