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.
878 879 880 881 882 883 884 885 |
# File 'lib/rage/configuration.rb', line 878 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.
908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 |
# File 'lib/rage/configuration.rb', line 908 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 @backend_options = {} if RUBY_VERSION.start_with?("3.3.") 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.
945 946 947 |
# File 'lib/rage/configuration.rb', line 945 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.
975 976 977 978 979 980 981 982 983 984 985 986 987 988 989 990 991 992 |
# File 'lib/rage/configuration.rb', line 975 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.
1021 1022 1023 |
# File 'lib/rage/configuration.rb', line 1021 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.
1032 1033 1034 |
# File 'lib/rage/configuration.rb', line 1032 def perform_middleware @perform_middleware ||= Middleware.new end |
#schedule(&block) ⇒ Object
Schedule a periodic task to run at a fixed interval.
845 846 847 |
# File 'lib/rage/configuration.rb', line 845 def schedule(&block) @schedule_blocks << block end |