Sha256: 86b032a601567cbfc5012deb8bdad555318f37e98e944e725398a76e190ae57a

Contents?: true

Size: 629 Bytes

Versions: 9

Compression:

Stored size: 629 Bytes

Contents

module Workarea
  class SynchronizeUserMetrics
    include Sidekiq::Worker
    include Sidekiq::CallbacksWorker

    sidekiq_options(
      enqueue_on: { User => :save, only_if: -> { admin_changed? || tags_changed? } },
      queue: 'low'
    )

    # It's essential for the {Metrics::User#admin} field always be in sync, so
    # we always want this worker enabled.
    #
    # @return [Boolean]
    #
    def self.enabled?
      true
    end

    def perform(id)
      user = User.find(id)
      metrics = Metrics::User.find_or_create_by(id: user.email)
      metrics.set(admin: user.admin?, tags: user.tags)
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
workarea-core-3.5.8 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.7 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.6 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.5 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.4 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.3 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.2 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.1 app/workers/workarea/synchronize_user_metrics.rb
workarea-core-3.5.0 app/workers/workarea/synchronize_user_metrics.rb