workhorse 1.2.7 → 1.2.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +9 -0
- data/VERSION +1 -1
- data/lib/generators/workhorse/templates/config/initializers/workhorse.rb +4 -0
- data/lib/workhorse/daemon/shell_handler.rb +8 -4
- data/lib/workhorse.rb +6 -0
- data/workhorse.gemspec +3 -3
- metadata +9 -9
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 9e82524a9a4ac0e41a41fe2a1947e3a9e1b58efc96f750f1dfa0ef5ebeeaad39
         | 
| 4 | 
            +
              data.tar.gz: a31b41e50239da3e0b1bb416d2e5d1c649083ad7fc30b7b2747e4ec9bd877931
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: bcf8c18e959ecfe4ea1db71b3e1cc59a88325b5d70be33220cfe4931f92fb982548514a0f47576f792a33659011a7956f6c0075544681f0f312816428c1f5f20
         | 
| 7 | 
            +
              data.tar.gz: 557a630d4681f635bfde37da63838a900f6938b6a38f7b188e94a1c4c293972020e91a183dc173fbe02be4d08ddee9a868074c70d219af65a4a7408050211247
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,14 @@ | |
| 1 1 | 
             
            # Workhorse Changelog
         | 
| 2 2 |  | 
| 3 | 
            +
            ## 1.2.8 - 2022-11-23
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            * Add configuration option `lock_shell_commands`. This defaults to `true` to
         | 
| 6 | 
            +
              retain backwards compatibility and allows turning off file locking for shell
         | 
| 7 | 
            +
              commands (e.g. for cases where the locking is done outside of workhorse like
         | 
| 8 | 
            +
              in a wrapper script).
         | 
| 9 | 
            +
             | 
| 10 | 
            +
              Sitrox reference: #106900.
         | 
| 11 | 
            +
             | 
| 3 12 | 
             
            ## 1.2.7 - 2022-04-07
         | 
| 4 13 |  | 
| 5 14 | 
             
            * Adapt exit status of shell handler to return with exit code `2` when a worker
         | 
    
        data/VERSION
    CHANGED
    
    | @@ -1 +1 @@ | |
| 1 | 
            -
            1.2. | 
| 1 | 
            +
            1.2.8
         | 
| @@ -12,6 +12,10 @@ Workhorse.setup do |config| | |
| 12 12 | 
             
              #   ActiveRecord::Base.transaction(*args, &block)
         | 
| 13 13 | 
             
              # end
         | 
| 14 14 |  | 
| 15 | 
            +
              # Set this to false in order to disable file-based locking for the Workhorse
         | 
| 16 | 
            +
              # shell handlers (all the commands such as 'start', 'stop', ...).
         | 
| 17 | 
            +
              # config.lock_shell_commands = true
         | 
| 18 | 
            +
             | 
| 15 19 | 
             
              # Enable and configure this to specify a callback for handling worker
         | 
| 16 20 | 
             
              # exceptions:
         | 
| 17 21 | 
             
              #
         | 
| @@ -6,9 +6,13 @@ module Workhorse | |
| 6 6 | 
             
                    exit 99
         | 
| 7 7 | 
             
                  end
         | 
| 8 8 |  | 
| 9 | 
            -
                   | 
| 10 | 
            -
             | 
| 11 | 
            -
             | 
| 9 | 
            +
                  if Workhorse.lock_shell_commands
         | 
| 10 | 
            +
                    lockfile_path = options.delete(:lockfile) || 'workhorse.lock'
         | 
| 11 | 
            +
                    lockfile = File.open(lockfile_path, 'a')
         | 
| 12 | 
            +
                    lockfile.flock(File::LOCK_EX || File::LOCK_NB)
         | 
| 13 | 
            +
                  else
         | 
| 14 | 
            +
                    lockfile = nil
         | 
| 15 | 
            +
                  end
         | 
| 12 16 |  | 
| 13 17 | 
             
                  daemon = Workhorse::Daemon.new(**options, &block)
         | 
| 14 18 |  | 
| @@ -40,7 +44,7 @@ module Workhorse | |
| 40 44 | 
             
                    warn "#{e.message}\n#{e.backtrace.join("\n")}"
         | 
| 41 45 | 
             
                    exit 99
         | 
| 42 46 | 
             
                  ensure
         | 
| 43 | 
            -
                    lockfile | 
| 47 | 
            +
                    lockfile&.flock(File::LOCK_UN)
         | 
| 44 48 | 
             
                  end
         | 
| 45 49 | 
             
                end
         | 
| 46 50 |  | 
    
        data/lib/workhorse.rb
    CHANGED
    
    | @@ -31,6 +31,12 @@ module Workhorse | |
| 31 31 | 
             
                # ExceptionNotifier.notify_exception(exception)
         | 
| 32 32 | 
             
              end
         | 
| 33 33 |  | 
| 34 | 
            +
              # If set to `false`, shell handler (CLI) won't lock commands using a lockfile.
         | 
| 35 | 
            +
              # You should generally only disable this if you are performing the locking
         | 
| 36 | 
            +
              # yourself (e.g. in a wrapper script).
         | 
| 37 | 
            +
              mattr_accessor :lock_shell_commands
         | 
| 38 | 
            +
              self.lock_shell_commands = true
         | 
| 39 | 
            +
             | 
| 34 40 | 
             
              # If set to `true`, the defined `on_exception` will not be called when the
         | 
| 35 41 | 
             
              # poller encounters an exception and the worker has to be shut down. The
         | 
| 36 42 | 
             
              # exception will still be logged.
         | 
    
        data/workhorse.gemspec
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            # -*- encoding: utf-8 -*-
         | 
| 2 | 
            -
            # stub: workhorse 1.2. | 
| 2 | 
            +
            # stub: workhorse 1.2.8 ruby lib
         | 
| 3 3 |  | 
| 4 4 | 
             
            Gem::Specification.new do |s|
         | 
| 5 5 | 
             
              s.name = "workhorse".freeze
         | 
| 6 | 
            -
              s.version = "1.2. | 
| 6 | 
            +
              s.version = "1.2.8"
         | 
| 7 7 |  | 
| 8 8 | 
             
              s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version=
         | 
| 9 9 | 
             
              s.require_paths = ["lib".freeze]
         | 
| 10 10 | 
             
              s.authors = ["Sitrox".freeze]
         | 
| 11 | 
            -
              s.date = "2022- | 
| 11 | 
            +
              s.date = "2022-11-23"
         | 
| 12 12 | 
             
              s.files = [".github/workflows/ruby.yml".freeze, ".gitignore".freeze, ".releaser_config".freeze, ".rubocop.yml".freeze, "CHANGELOG.md".freeze, "FAQ.md".freeze, "Gemfile".freeze, "LICENSE".freeze, "README.md".freeze, "RUBY_VERSION".freeze, "Rakefile".freeze, "VERSION".freeze, "bin/rubocop".freeze, "lib/active_job/queue_adapters/workhorse_adapter.rb".freeze, "lib/generators/workhorse/install_generator.rb".freeze, "lib/generators/workhorse/templates/bin/workhorse.rb".freeze, "lib/generators/workhorse/templates/config/initializers/workhorse.rb".freeze, "lib/generators/workhorse/templates/create_table_jobs.rb".freeze, "lib/workhorse.rb".freeze, "lib/workhorse/daemon.rb".freeze, "lib/workhorse/daemon/shell_handler.rb".freeze, "lib/workhorse/db_job.rb".freeze, "lib/workhorse/enqueuer.rb".freeze, "lib/workhorse/jobs/cleanup_succeeded_jobs.rb".freeze, "lib/workhorse/jobs/detect_stale_jobs_job.rb".freeze, "lib/workhorse/jobs/run_active_job.rb".freeze, "lib/workhorse/jobs/run_rails_op.rb".freeze, "lib/workhorse/performer.rb".freeze, "lib/workhorse/poller.rb".freeze, "lib/workhorse/pool.rb".freeze, "lib/workhorse/scoped_env.rb".freeze, "lib/workhorse/worker.rb".freeze, "test/active_job/queue_adapters/workhorse_adapter_test.rb".freeze, "test/lib/db_schema.rb".freeze, "test/lib/jobs.rb".freeze, "test/lib/test_helper.rb".freeze, "test/workhorse/db_job_test.rb".freeze, "test/workhorse/enqueuer_test.rb".freeze, "test/workhorse/performer_test.rb".freeze, "test/workhorse/poller_test.rb".freeze, "test/workhorse/pool_test.rb".freeze, "test/workhorse/worker_test.rb".freeze, "workhorse.gemspec".freeze]
         | 
| 13 13 | 
             
              s.rubygems_version = "3.0.3".freeze
         | 
| 14 14 | 
             
              s.summary = "Multi-threaded job backend with database queuing for ruby.".freeze
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: workhorse
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 1.2. | 
| 4 | 
            +
              version: 1.2.8
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Sitrox
         | 
| 8 | 
            -
            autorequire: | 
| 8 | 
            +
            autorequire:
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2022- | 
| 11 | 
            +
            date: 2022-11-23 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: bundler
         | 
| @@ -178,8 +178,8 @@ dependencies: | |
| 178 178 | 
             
                - - ">="
         | 
| 179 179 | 
             
                  - !ruby/object:Gem::Version
         | 
| 180 180 | 
             
                    version: '0'
         | 
| 181 | 
            -
            description: | 
| 182 | 
            -
            email: | 
| 181 | 
            +
            description:
         | 
| 182 | 
            +
            email:
         | 
| 183 183 | 
             
            executables: []
         | 
| 184 184 | 
             
            extensions: []
         | 
| 185 185 | 
             
            extra_rdoc_files: []
         | 
| @@ -227,10 +227,10 @@ files: | |
| 227 227 | 
             
            - test/workhorse/pool_test.rb
         | 
| 228 228 | 
             
            - test/workhorse/worker_test.rb
         | 
| 229 229 | 
             
            - workhorse.gemspec
         | 
| 230 | 
            -
            homepage: | 
| 230 | 
            +
            homepage:
         | 
| 231 231 | 
             
            licenses: []
         | 
| 232 232 | 
             
            metadata: {}
         | 
| 233 | 
            -
            post_install_message: | 
| 233 | 
            +
            post_install_message:
         | 
| 234 234 | 
             
            rdoc_options: []
         | 
| 235 235 | 
             
            require_paths:
         | 
| 236 236 | 
             
            - lib
         | 
| @@ -245,8 +245,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement | |
| 245 245 | 
             
                - !ruby/object:Gem::Version
         | 
| 246 246 | 
             
                  version: '0'
         | 
| 247 247 | 
             
            requirements: []
         | 
| 248 | 
            -
            rubygems_version: 3. | 
| 249 | 
            -
            signing_key: | 
| 248 | 
            +
            rubygems_version: 3.3.11
         | 
| 249 | 
            +
            signing_key:
         | 
| 250 250 | 
             
            specification_version: 4
         | 
| 251 251 | 
             
            summary: Multi-threaded job backend with database queuing for ruby.
         | 
| 252 252 | 
             
            test_files:
         |