Class: Rage::Configuration::Deferred
- Inherits:
-
Object
- Object
- Rage::Configuration::Deferred
- Defined in:
- lib/rage/configuration.rb
Defined Under Namespace
Classes: Backpressure, Middleware
Instance Method Summary collapse
-
#backend ⇒ Object
Returns the backend instance used by
Rage::Deferred. -
#backend=(config) ⇒ Object
Specify the backend used to persist deferred tasks.
-
#backpressure ⇒ Backpressure?
Returns the backpressure configuration used by
Rage::Deferred. -
#backpressure=(config) ⇒ Object
Configure backpressure settings for
Rage::Deferred. -
#enqueue_middleware ⇒ Rage::Configuration::Deferred::Middleware
Configure enqueue middleware used by
Rage::Deferred. -
#perform_middleware ⇒ Rage::Configuration::Deferred::Middleware
Configure perform middleware used by
Rage::Deferred. -
#schedule(&block) ⇒ Object
Schedule a periodic task to run at a fixed interval.
Instance Method Details
#backend ⇒ Object
Returns the backend instance used by Rage::Deferred.
796 797 798 799 800 801 802 803 |
# File 'lib/rage/configuration.rb', line 796 def backend unless @backend_class @backend_class = Rage::Deferred::Backends::Disk @backend_options = ({}) end @backend_class.new(**@backend_options) end |
#backend=(disk, options = {}) ⇒ Object #backend=(nil) ⇒ Object
Specify the backend used to persist deferred tasks. Supported values are :disk, which uses disk storage, or nil, which disables persistence of deferred tasks.
826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 |
# File 'lib/rage/configuration.rb', line 826 def backend=(config) @configured = true backend_id, opts = if config.is_a?(Array) [config[0], config[1]] else [config, {}] end @backend_class = case backend_id when :disk @backend_options = (opts) Rage::Deferred::Backends::Disk when nil Rage::Deferred::Backends::Nil else raise ArgumentError, "unsupported backend value; supported keys are `:disk` and `nil`" end end |
#backpressure ⇒ Backpressure?
Returns the backpressure configuration used by Rage::Deferred.
862 863 864 |
# File 'lib/rage/configuration.rb', line 862 def backpressure @backpressure end |
#backpressure=(true) ⇒ Object #backpressure=(false) ⇒ Object #backpressure=(config) ⇒ Object
Configure backpressure settings for Rage::Deferred. Backpressure is used to limit the number of pending tasks in the queue and is disabled by default.
892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 |
# File 'lib/rage/configuration.rb', line 892 def backpressure=(config) @configured = true if config == true @backpressure = Backpressure.new return elsif config == false @backpressure = nil return end if config.except(:high_water_mark, :low_water_mark, :timeout).any? raise ArgumentError, "unsupported backpressure options; supported keys are `:high_water_mark`, `:low_water_mark`, `:timeout`" end high_water_mark, low_water_mark, timeout = config.values_at(:high_water_mark, :low_water_mark, :timeout) @backpressure = Backpressure.new(high_water_mark, low_water_mark, timeout) end |
#enqueue_middleware ⇒ Rage::Configuration::Deferred::Middleware
Configure enqueue middleware used by Rage::Deferred.
See EnqueueMiddlewareInterface for details on the arguments passed to the middleware.
938 939 940 |
# File 'lib/rage/configuration.rb', line 938 def enqueue_middleware @enqueue_middleware ||= Middleware.new end |
#perform_middleware ⇒ Rage::Configuration::Deferred::Middleware
Configure perform middleware used by Rage::Deferred.
See PerformMiddlewareInterface for details on the arguments passed to the middleware.
949 950 951 |
# File 'lib/rage/configuration.rb', line 949 def perform_middleware @perform_middleware ||= Middleware.new end |
#schedule(&block) ⇒ Object
Schedule a periodic task to run at a fixed interval.
763 764 765 |
# File 'lib/rage/configuration.rb', line 763 def schedule(&block) @schedule_blocks << block end |