Ruby on Rails 5.2 - ActionCable::Channel::PeriodicTimers::ClassMethods

मॉड्यूल ActionCable :: Channel :: PeriodicTimers :: ClassMethods




ruby

मॉड्यूल ActionCable :: Channel :: PeriodicTimers :: ClassMethods

सार्वजनिक प्रवृत्ति के तरीके

समय-समय पर (callback_or_method_name = nil, हर :, और ब्लॉक) स्रोत दिखाएं
# File actioncable/lib/action_cable/channel/periodic_timers.rb, line 31
def periodically(callback_or_method_name = nil, every:, &block)
  callback =
    if block_given?
      raise ArgumentError, "Pass a block or provide a callback arg, not both" if callback_or_method_name
      block
    else
      case callback_or_method_name
      when Proc
        callback_or_method_name
      when Symbol
        -> { __send__ callback_or_method_name }
      else
        raise ArgumentError, "Expected a Symbol method name or a Proc, got #{callback_or_method_name.inspect}"
      end
    end

  unless every.kind_of?(Numeric) && every > 0
    raise ArgumentError, "Expected every: to be a positive number of seconds, got #{every.inspect}"
  end

  self.periodic_timers += [[ callback, every: every ]]
end

समय-समय पर चैनल पर एक कार्य करता है, जैसे एक ऑनलाइन उपयोगकर्ता काउंटर को अपडेट करना, नए स्टेटस संदेशों के लिए बैकएंड को प्रदूषित करना, नियमित रूप से "दिल की धड़कन" संदेश भेजना, या कुछ आंतरिक काम करना और प्रगति अपडेट देना।

विधि नाम या लैम्ब्डा तर्क पास करें या कॉल करने के लिए एक ब्लॉक प्रदान करें। every: कीवर्ड तर्क का उपयोग करके सेकंड में कॉलिंग अवधि निर्दिष्ट करें।

periodically :transmit_progress, every: 5.seconds

periodically every: 3.minutes do
  transmit action: :update_count, count: current_count
end