Sha256: 25bbaefc835df47b07418782aef882bd0ece84ccb83e4fea6fa997d415aac587

Contents?: true

Size: 932 Bytes

Versions: 25

Compression:

Stored size: 932 Bytes

Contents

# frozen_string_literal: true
module Dynflow
  module Executors
    module Sidekiq
      # Module to prepend the Sidekiq job to handle the serialization
      module Serialization
        def self.serialize(value)
          Dynflow.serializer.dump(value)
        end

        def self.deserialize(value)
          value = Utils::IndifferentHash.new(value) if value.is_a? Hash
          Dynflow.serializer.load(value)
        end

        module WorkerExtension
          # Overriding the Sidekiq entry method to perform additional serialization preparation
          module ClassMethods
            def client_push(opts)
              opts['args'] = opts['args'].map { |a| Serialization.serialize(a) }
              super(opts)
            end
          end

          def perform(*args)
            args = args.map { |a| Serialization.deserialize(a) }
            super(*args)
          end
        end
      end
    end
  end
end

Version data entries

25 entries across 25 versions & 1 rubygems

Version Path
dynflow-1.8.2 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.8.1 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.8.0 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.7.0 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.6.11 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.6.10 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.6.8 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.6.7 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.6.6 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.6.5 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.6.4 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.6.3 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.6.2 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.6.1 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.4.9 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.4.8 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.5.0 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.4.7 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.4.6 lib/dynflow/executors/sidekiq/serialization.rb
dynflow-1.4.5 lib/dynflow/executors/sidekiq/serialization.rb