good_job 4.0.0 → 4.0.2
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 +33 -0
- data/app/controllers/good_job/{performances_controller.rb → performance_controller.rb} +2 -2
- data/app/models/good_job/base_execution.rb +2 -19
- data/app/models/good_job/discrete_execution.rb +3 -0
- data/app/models/good_job/job.rb +0 -2
- data/app/views/good_job/shared/_navbar.erb +2 -2
- data/config/locales/de.yml +3 -3
- data/config/locales/en.yml +3 -3
- data/config/locales/es.yml +3 -3
- data/config/locales/fr.yml +3 -3
- data/config/locales/it.yml +3 -3
- data/config/locales/ja.yml +3 -3
- data/config/locales/ko.yml +3 -3
- data/config/locales/nl.yml +3 -3
- data/config/locales/pt-BR.yml +3 -3
- data/config/locales/ru.yml +3 -3
- data/config/locales/tr.yml +3 -3
- data/config/locales/uk.yml +3 -3
- data/config/routes.rb +1 -1
- data/lib/good_job/cleanup_tracker.rb +1 -1
- data/lib/good_job/configuration.rb +32 -59
- data/lib/good_job/version.rb +1 -1
- data/lib/good_job.rb +5 -4
- metadata +4 -4
- /data/app/views/good_job/{performances/show.html.erb → performance/index.html.erb} +0 -0
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA256:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: e2bd0a03d12095efe56c49c36fce5dbef909efbb4a984203c49b5ad2e0ba2fc5
         | 
| 4 | 
            +
              data.tar.gz: 5bc6fc1c127bcffe8388b8f0994c3a2c82b31952387c6be67a35fc280bf1c4cd
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: 0a4c1d788d8c8ea031b4b4654b65b7fe170a0f24d1ffb2550a150de100c8c73f66a4b7d3b19bce99b7f752230c50c5b59829bd906cc3036759553b5615b1b451
         | 
| 7 | 
            +
              data.tar.gz: 25b4458b92cbeca4db9f6486ee73e41f415b12ab585b35d7724f24e88f99e86b038be2e73f67b4e4bc6c60ff3d01df7903529ab9c859d3df9259db0a113460bc
         | 
    
        data/CHANGELOG.md
    CHANGED
    
    | @@ -1,5 +1,38 @@ | |
| 1 1 | 
             
            # Changelog
         | 
| 2 2 |  | 
| 3 | 
            +
            ## [v4.0.2](https://github.com/bensheldon/good_job/tree/v4.0.2) (2024-07-08)
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            [Full Changelog](https://github.com/bensheldon/good_job/compare/v4.0.1...v4.0.2)
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            **Fixed bugs:**
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            - Fix a rails 6.1 deprecation warning for the duration attribute [\#1408](https://github.com/bensheldon/good_job/pull/1408) ([Earlopain](https://github.com/Earlopain))
         | 
| 10 | 
            +
            - Actually remove deprecated configuration for `cleanup_interval_seconds`, `cleanup_interval_jobs`; remove deprecated `Lockable` [\#1406](https://github.com/bensheldon/good_job/pull/1406) ([bensheldon](https://github.com/bensheldon))
         | 
| 11 | 
            +
             | 
| 12 | 
            +
            **Closed issues:**
         | 
| 13 | 
            +
             | 
| 14 | 
            +
            - PG::UndefinedColumn: ERROR:  column good\_job\_processes.lock\_type does not exist [\#1405](https://github.com/bensheldon/good_job/issues/1405)
         | 
| 15 | 
            +
            - undefined method `duration=' for an instance of GoodJob::Execution [\#1404](https://github.com/bensheldon/good_job/issues/1404)
         | 
| 16 | 
            +
            - v3 deprecations are still present [\#1399](https://github.com/bensheldon/good_job/issues/1399)
         | 
| 17 | 
            +
             | 
| 18 | 
            +
            **Merged pull requests:**
         | 
| 19 | 
            +
             | 
| 20 | 
            +
            - Fix Batch integration test to not exhaust database connection thread pool [\#1409](https://github.com/bensheldon/good_job/pull/1409) ([bensheldon](https://github.com/bensheldon))
         | 
| 21 | 
            +
            - Discrete cleanup [\#1401](https://github.com/bensheldon/good_job/pull/1401) ([Earlopain](https://github.com/Earlopain))
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            ## [v4.0.1](https://github.com/bensheldon/good_job/tree/v4.0.1) (2024-07-08)
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            [Full Changelog](https://github.com/bensheldon/good_job/compare/v4.0.0...v4.0.1)
         | 
| 26 | 
            +
             | 
| 27 | 
            +
            **Fixed bugs:**
         | 
| 28 | 
            +
             | 
| 29 | 
            +
            - Actually change `smaller_number_is_higher_priority` for v4 [\#1402](https://github.com/bensheldon/good_job/pull/1402) ([Earlopain](https://github.com/Earlopain))
         | 
| 30 | 
            +
             | 
| 31 | 
            +
            **Merged pull requests:**
         | 
| 32 | 
            +
             | 
| 33 | 
            +
            - Bump prism/rbi dev dependency [\#1403](https://github.com/bensheldon/good_job/pull/1403) ([Earlopain](https://github.com/Earlopain))
         | 
| 34 | 
            +
            - Use index action for the performance controller [\#1398](https://github.com/bensheldon/good_job/pull/1398) ([Earlopain](https://github.com/Earlopain))
         | 
| 35 | 
            +
             | 
| 3 36 | 
             
            ## [v4.0.0](https://github.com/bensheldon/good_job/tree/v4.0.0) (2024-07-07)
         | 
| 4 37 |  | 
| 5 38 | 
             
            [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.99.0...v4.0.0)
         | 
| @@ -1,8 +1,8 @@ | |
| 1 1 | 
             
            # frozen_string_literal: true
         | 
| 2 2 |  | 
| 3 3 | 
             
            module GoodJob
         | 
| 4 | 
            -
              class  | 
| 5 | 
            -
                def  | 
| 4 | 
            +
              class PerformanceController < ApplicationController
         | 
| 5 | 
            +
                def index
         | 
| 6 6 | 
             
                  @performances = GoodJob::DiscreteExecution
         | 
| 7 7 | 
             
                                  .where.not(job_class: nil)
         | 
| 8 8 | 
             
                                  .group(:job_class)
         | 
| @@ -25,6 +25,8 @@ module GoodJob | |
| 25 25 | 
             
                self.advisory_lockable_column = 'active_job_id'
         | 
| 26 26 | 
             
                self.implicit_order_column = 'created_at'
         | 
| 27 27 |  | 
| 28 | 
            +
                self.ignored_columns += ["is_discrete"]
         | 
| 29 | 
            +
             | 
| 28 30 | 
             
                define_model_callbacks :perform
         | 
| 29 31 | 
             
                define_model_callbacks :perform_unlocked, only: :after
         | 
| 30 32 |  | 
| @@ -216,14 +218,6 @@ module GoodJob | |
| 216 218 | 
             
                  def coalesce_scheduled_at_created_at
         | 
| 217 219 | 
             
                    arel_table.coalesce(arel_table['scheduled_at'], arel_table['created_at'])
         | 
| 218 220 | 
             
                  end
         | 
| 219 | 
            -
             | 
| 220 | 
            -
                  def discrete_support?
         | 
| 221 | 
            -
                    true
         | 
| 222 | 
            -
                  end
         | 
| 223 | 
            -
                end
         | 
| 224 | 
            -
             | 
| 225 | 
            -
                def discrete?
         | 
| 226 | 
            -
                  is_discrete?
         | 
| 227 221 | 
             
                end
         | 
| 228 222 |  | 
| 229 223 | 
             
                # Build an ActiveJob instance and deserialize the arguments, using `#active_job_data`.
         | 
| @@ -545,17 +539,6 @@ module GoodJob | |
| 545 539 | 
             
                  false
         | 
| 546 540 | 
             
                end
         | 
| 547 541 |  | 
| 548 | 
            -
                def make_discrete
         | 
| 549 | 
            -
                  self.is_discrete = true
         | 
| 550 | 
            -
                  self.id = active_job_id
         | 
| 551 | 
            -
                  self.job_class = serialized_params['job_class']
         | 
| 552 | 
            -
                  self.executions_count ||= 0
         | 
| 553 | 
            -
             | 
| 554 | 
            -
                  current_time = Time.current
         | 
| 555 | 
            -
                  self.created_at ||= current_time
         | 
| 556 | 
            -
                  self.scheduled_at ||= current_time
         | 
| 557 | 
            -
                end
         | 
| 558 | 
            -
             | 
| 559 542 | 
             
                # Return formatted serialized_params for display in the dashboard
         | 
| 560 543 | 
             
                # @return [Hash]
         | 
| 561 544 | 
             
                def display_serialized_params
         | 
    
        data/app/models/good_job/job.rb
    CHANGED
    
    | @@ -46,8 +46,6 @@ module GoodJob | |
| 46 46 | 
             
                # Errored but will not be retried
         | 
| 47 47 | 
             
                scope :discarded, -> { finished.where.not(error: nil) }
         | 
| 48 48 |  | 
| 49 | 
            -
                scope :unfinished_undiscrete, -> { where(finished_at: nil, retried_good_job_id: nil, is_discrete: [nil, false]) }
         | 
| 50 | 
            -
             | 
| 51 49 | 
             
                # TODO: it would be nice to enforce these values at the model
         | 
| 52 50 | 
             
                # validates :active_job_id, presence: true
         | 
| 53 51 | 
             
                # validates :scheduled_at, presence: true
         | 
| @@ -40,8 +40,8 @@ | |
| 40 40 | 
             
                      <% end %>
         | 
| 41 41 | 
             
                    </li>
         | 
| 42 42 | 
             
                    <li class="nav-item">
         | 
| 43 | 
            -
                      <%= link_to  | 
| 44 | 
            -
                        <%= t(". | 
| 43 | 
            +
                      <%= link_to performance_index_path, class: ["nav-link", ("active" if controller_name == 'performance')] do %>
         | 
| 44 | 
            +
                        <%= t(".performance") %>
         | 
| 45 45 | 
             
                      <% end %>
         | 
| 46 46 | 
             
                    </li>
         | 
| 47 47 | 
             
                  </ul>
         | 
    
        data/config/locales/de.yml
    CHANGED
    
    | @@ -194,8 +194,8 @@ de: | |
| 194 194 | 
             
                        thousand: K
         | 
| 195 195 | 
             
                        trillion: T
         | 
| 196 196 | 
             
                        unit: ''
         | 
| 197 | 
            -
                 | 
| 198 | 
            -
                   | 
| 197 | 
            +
                performance:
         | 
| 198 | 
            +
                  index:
         | 
| 199 199 | 
             
                    average_duration: Durchschnittliche Dauer
         | 
| 200 200 | 
             
                    executions: Hinrichtungen
         | 
| 201 201 | 
             
                    job_class: Berufsklasse
         | 
| @@ -231,7 +231,7 @@ de: | |
| 231 231 | 
             
                    jobs: Jobs
         | 
| 232 232 | 
             
                    live_poll: Live Poll
         | 
| 233 233 | 
             
                    name: "GoodJob 👍"
         | 
| 234 | 
            -
                     | 
| 234 | 
            +
                    performance: Leistung
         | 
| 235 235 | 
             
                    processes: Prozesse
         | 
| 236 236 | 
             
                    theme:
         | 
| 237 237 | 
             
                      auto: Auto
         | 
    
        data/config/locales/en.yml
    CHANGED
    
    | @@ -194,8 +194,8 @@ en: | |
| 194 194 | 
             
                        thousand: K
         | 
| 195 195 | 
             
                        trillion: T
         | 
| 196 196 | 
             
                        unit: ''
         | 
| 197 | 
            -
                 | 
| 198 | 
            -
                   | 
| 197 | 
            +
                performance:
         | 
| 198 | 
            +
                  index:
         | 
| 199 199 | 
             
                    average_duration: Average duration
         | 
| 200 200 | 
             
                    executions: Executions
         | 
| 201 201 | 
             
                    job_class: Job class
         | 
| @@ -231,7 +231,7 @@ en: | |
| 231 231 | 
             
                    jobs: Jobs
         | 
| 232 232 | 
             
                    live_poll: Live Poll
         | 
| 233 233 | 
             
                    name: "GoodJob 👍"
         | 
| 234 | 
            -
                     | 
| 234 | 
            +
                    performance: Performance
         | 
| 235 235 | 
             
                    processes: Processes
         | 
| 236 236 | 
             
                    theme:
         | 
| 237 237 | 
             
                      auto: Auto
         | 
    
        data/config/locales/es.yml
    CHANGED
    
    | @@ -194,8 +194,8 @@ es: | |
| 194 194 | 
             
                        thousand: k
         | 
| 195 195 | 
             
                        trillion: T
         | 
| 196 196 | 
             
                        unit: ''
         | 
| 197 | 
            -
                 | 
| 198 | 
            -
                   | 
| 197 | 
            +
                performance:
         | 
| 198 | 
            +
                  index:
         | 
| 199 199 | 
             
                    average_duration: Duración promedio
         | 
| 200 200 | 
             
                    executions: Ejecuciones
         | 
| 201 201 | 
             
                    job_class: clase de trabajo
         | 
| @@ -231,7 +231,7 @@ es: | |
| 231 231 | 
             
                    jobs: Tareas
         | 
| 232 232 | 
             
                    live_poll: En vivo
         | 
| 233 233 | 
             
                    name: "GoodJob 👍"
         | 
| 234 | 
            -
                     | 
| 234 | 
            +
                    performance: Actuación
         | 
| 235 235 | 
             
                    processes: Procesos
         | 
| 236 236 | 
             
                    theme:
         | 
| 237 237 | 
             
                      auto: Auto
         | 
    
        data/config/locales/fr.yml
    CHANGED
    
    | @@ -194,8 +194,8 @@ fr: | |
| 194 194 | 
             
                        thousand: k
         | 
| 195 195 | 
             
                        trillion: J
         | 
| 196 196 | 
             
                        unit: ''
         | 
| 197 | 
            -
                 | 
| 198 | 
            -
                   | 
| 197 | 
            +
                performance:
         | 
| 198 | 
            +
                  index:
         | 
| 199 199 | 
             
                    average_duration: Durée moyenne
         | 
| 200 200 | 
             
                    executions: Exécutions
         | 
| 201 201 | 
             
                    job_class: Catégorie d'emplois
         | 
| @@ -231,7 +231,7 @@ fr: | |
| 231 231 | 
             
                    jobs: Jobs
         | 
| 232 232 | 
             
                    live_poll: En direct
         | 
| 233 233 | 
             
                    name: "GoodJob 👍"
         | 
| 234 | 
            -
                     | 
| 234 | 
            +
                    performance: Performance
         | 
| 235 235 | 
             
                    processes: Processus
         | 
| 236 236 | 
             
                    theme:
         | 
| 237 237 | 
             
                      auto: Auto
         | 
    
        data/config/locales/it.yml
    CHANGED
    
    | @@ -194,8 +194,8 @@ it: | |
| 194 194 | 
             
                        thousand: K
         | 
| 195 195 | 
             
                        trillion: T
         | 
| 196 196 | 
             
                        unit: ''
         | 
| 197 | 
            -
                 | 
| 198 | 
            -
                   | 
| 197 | 
            +
                performance:
         | 
| 198 | 
            +
                  index:
         | 
| 199 199 | 
             
                    average_duration: Durata media
         | 
| 200 200 | 
             
                    executions: Esecuzioni
         | 
| 201 201 | 
             
                    job_class: Classe di lavoro
         | 
| @@ -231,7 +231,7 @@ it: | |
| 231 231 | 
             
                    jobs: Job
         | 
| 232 232 | 
             
                    live_poll: Live Poll
         | 
| 233 233 | 
             
                    name: "GoodJob 👍"
         | 
| 234 | 
            -
                     | 
| 234 | 
            +
                    performance: Prestazione
         | 
| 235 235 | 
             
                    processes: Processi
         | 
| 236 236 | 
             
                    theme:
         | 
| 237 237 | 
             
                      auto: Auto
         | 
    
        data/config/locales/ja.yml
    CHANGED
    
    | @@ -194,8 +194,8 @@ ja: | |
| 194 194 | 
             
                        thousand: K
         | 
| 195 195 | 
             
                        trillion: T
         | 
| 196 196 | 
             
                        unit: ''
         | 
| 197 | 
            -
                 | 
| 198 | 
            -
                   | 
| 197 | 
            +
                performance:
         | 
| 198 | 
            +
                  index:
         | 
| 199 199 | 
             
                    average_duration: 平均所要時間
         | 
| 200 200 | 
             
                    executions: 処刑
         | 
| 201 201 | 
             
                    job_class: 職種
         | 
| @@ -231,7 +231,7 @@ ja: | |
| 231 231 | 
             
                    jobs: ジョブ
         | 
| 232 232 | 
             
                    live_poll: リアルタイム更新
         | 
| 233 233 | 
             
                    name: "GoodJob 👍"
         | 
| 234 | 
            -
                     | 
| 234 | 
            +
                    performance: パフォーマンス
         | 
| 235 235 | 
             
                    processes: プロセス
         | 
| 236 236 | 
             
                    theme:
         | 
| 237 237 | 
             
                      auto: 自動
         | 
    
        data/config/locales/ko.yml
    CHANGED
    
    | @@ -194,8 +194,8 @@ ko: | |
| 194 194 | 
             
                        thousand: K
         | 
| 195 195 | 
             
                        trillion: T
         | 
| 196 196 | 
             
                        unit: ''
         | 
| 197 | 
            -
                 | 
| 198 | 
            -
                   | 
| 197 | 
            +
                performance:
         | 
| 198 | 
            +
                  index:
         | 
| 199 199 | 
             
                    average_duration: 평균 지속 시간
         | 
| 200 200 | 
             
                    executions: 처형
         | 
| 201 201 | 
             
                    job_class: 직업군
         | 
| @@ -231,7 +231,7 @@ ko: | |
| 231 231 | 
             
                    jobs: 작업
         | 
| 232 232 | 
             
                    live_poll: 실시간 업데이트
         | 
| 233 233 | 
             
                    name: "GoodJob 👍"
         | 
| 234 | 
            -
                     | 
| 234 | 
            +
                    performance: 성능
         | 
| 235 235 | 
             
                    processes: 프로세스
         | 
| 236 236 | 
             
                    theme:
         | 
| 237 237 | 
             
                      auto: 자동
         | 
    
        data/config/locales/nl.yml
    CHANGED
    
    | @@ -194,8 +194,8 @@ nl: | |
| 194 194 | 
             
                        thousand: K
         | 
| 195 195 | 
             
                        trillion: T
         | 
| 196 196 | 
             
                        unit: ''
         | 
| 197 | 
            -
                 | 
| 198 | 
            -
                   | 
| 197 | 
            +
                performance:
         | 
| 198 | 
            +
                  index:
         | 
| 199 199 | 
             
                    average_duration: Gemiddelde duur
         | 
| 200 200 | 
             
                    executions: Executies
         | 
| 201 201 | 
             
                    job_class: Functie klasse
         | 
| @@ -231,7 +231,7 @@ nl: | |
| 231 231 | 
             
                    jobs: Taken
         | 
| 232 232 | 
             
                    live_poll: Live Poll
         | 
| 233 233 | 
             
                    name: "GoodJob 👍"
         | 
| 234 | 
            -
                     | 
| 234 | 
            +
                    performance: Prestatie
         | 
| 235 235 | 
             
                    processes: Processen
         | 
| 236 236 | 
             
                    theme:
         | 
| 237 237 | 
             
                      auto: Auto
         | 
    
        data/config/locales/pt-BR.yml
    CHANGED
    
    | @@ -194,8 +194,8 @@ pt-BR: | |
| 194 194 | 
             
                        thousand: K
         | 
| 195 195 | 
             
                        trillion: T
         | 
| 196 196 | 
             
                        unit: ''
         | 
| 197 | 
            -
                 | 
| 198 | 
            -
                   | 
| 197 | 
            +
                performance:
         | 
| 198 | 
            +
                  index:
         | 
| 199 199 | 
             
                    average_duration: Duração média
         | 
| 200 200 | 
             
                    executions: Execuções
         | 
| 201 201 | 
             
                    job_class: Classe de trabalho
         | 
| @@ -231,7 +231,7 @@ pt-BR: | |
| 231 231 | 
             
                    jobs: Tarefas
         | 
| 232 232 | 
             
                    live_poll: Acompanhamento ao Vivo
         | 
| 233 233 | 
             
                    name: "GoodJob 👍"
         | 
| 234 | 
            -
                     | 
| 234 | 
            +
                    performance: Desempenho
         | 
| 235 235 | 
             
                    processes: Processos
         | 
| 236 236 | 
             
                    theme:
         | 
| 237 237 | 
             
                      auto: Automático
         | 
    
        data/config/locales/ru.yml
    CHANGED
    
    | @@ -220,8 +220,8 @@ ru: | |
| 220 220 | 
             
                        thousand: К
         | 
| 221 221 | 
             
                        trillion: Т
         | 
| 222 222 | 
             
                        unit: ''
         | 
| 223 | 
            -
                 | 
| 224 | 
            -
                   | 
| 223 | 
            +
                performance:
         | 
| 224 | 
            +
                  index:
         | 
| 225 225 | 
             
                    average_duration: Средняя продолжительность
         | 
| 226 226 | 
             
                    executions: Казни
         | 
| 227 227 | 
             
                    job_class: Класс работы
         | 
| @@ -257,7 +257,7 @@ ru: | |
| 257 257 | 
             
                    jobs: Задания
         | 
| 258 258 | 
             
                    live_poll: Обновления в реальном времени
         | 
| 259 259 | 
             
                    name: "GoodJob 👍"
         | 
| 260 | 
            -
                     | 
| 260 | 
            +
                    performance: Производительность
         | 
| 261 261 | 
             
                    processes: Процессы
         | 
| 262 262 | 
             
                    theme:
         | 
| 263 263 | 
             
                      auto: Авто
         | 
    
        data/config/locales/tr.yml
    CHANGED
    
    | @@ -194,8 +194,8 @@ tr: | |
| 194 194 | 
             
                        thousand: Bin
         | 
| 195 195 | 
             
                        trillion: Trilyon
         | 
| 196 196 | 
             
                        unit: ''
         | 
| 197 | 
            -
                 | 
| 198 | 
            -
                   | 
| 197 | 
            +
                performance:
         | 
| 198 | 
            +
                  index:
         | 
| 199 199 | 
             
                    average_duration: Ortalama süre
         | 
| 200 200 | 
             
                    executions: İnfazlar
         | 
| 201 201 | 
             
                    job_class: İş sınıfı
         | 
| @@ -231,7 +231,7 @@ tr: | |
| 231 231 | 
             
                    jobs: İşler
         | 
| 232 232 | 
             
                    live_poll: Anlık Güncelleme
         | 
| 233 233 | 
             
                    name: "GoodJob 👍"
         | 
| 234 | 
            -
                     | 
| 234 | 
            +
                    performance: Verim
         | 
| 235 235 | 
             
                    processes: Süreçler
         | 
| 236 236 | 
             
                    theme:
         | 
| 237 237 | 
             
                      auto: Oto
         | 
    
        data/config/locales/uk.yml
    CHANGED
    
    | @@ -220,8 +220,8 @@ uk: | |
| 220 220 | 
             
                        thousand: Тис
         | 
| 221 221 | 
             
                        trillion: Трлн
         | 
| 222 222 | 
             
                        unit: ''
         | 
| 223 | 
            -
                 | 
| 224 | 
            -
                   | 
| 223 | 
            +
                performance:
         | 
| 224 | 
            +
                  index:
         | 
| 225 225 | 
             
                    average_duration: Середня тривалість
         | 
| 226 226 | 
             
                    executions: Страти
         | 
| 227 227 | 
             
                    job_class: Клас роботи
         | 
| @@ -257,7 +257,7 @@ uk: | |
| 257 257 | 
             
                    jobs: Задачі
         | 
| 258 258 | 
             
                    live_poll: Живе Опитування
         | 
| 259 259 | 
             
                    name: "GoodJob 👍"
         | 
| 260 | 
            -
                     | 
| 260 | 
            +
                    performance: Продуктивність
         | 
| 261 261 | 
             
                    processes: Процеси
         | 
| 262 262 | 
             
                    theme:
         | 
| 263 263 | 
             
                      auto: Авто
         | 
    
        data/config/routes.rb
    CHANGED
    
    | @@ -31,7 +31,7 @@ GoodJob::Engine.routes.draw do | |
| 31 31 |  | 
| 32 32 | 
             
              resources :processes, only: %i[index]
         | 
| 33 33 |  | 
| 34 | 
            -
               | 
| 34 | 
            +
              resources :performance, only: %i[index]
         | 
| 35 35 |  | 
| 36 36 | 
             
              scope :frontend, controller: :frontends do
         | 
| 37 37 | 
             
                get "modules/:name", action: :module, as: :frontend_module, constraints: { format: 'js' }
         | 
| @@ -9,7 +9,7 @@ module GoodJob # :nodoc: | |
| 9 9 | 
             
                              :last_at
         | 
| 10 10 |  | 
| 11 11 | 
             
                def initialize(cleanup_interval_seconds: false, cleanup_interval_jobs: false)
         | 
| 12 | 
            -
                  raise ArgumentError, "Do not use `0 | 
| 12 | 
            +
                  raise ArgumentError, "Do not use `0` for cleanup intervals. Use `false` to disable, or -1 to always run" if cleanup_interval_seconds == 0 || cleanup_interval_jobs == 0 # rubocop:disable Style/NumericPredicate
         | 
| 13 13 |  | 
| 14 14 | 
             
                  self.cleanup_interval_seconds = cleanup_interval_seconds
         | 
| 15 15 | 
             
                  self.cleanup_interval_jobs = cleanup_interval_jobs
         | 
| @@ -35,6 +35,8 @@ module GoodJob | |
| 35 35 | 
             
                DEFAULT_DASHBOARD_LIVE_POLL_ENABLED = true
         | 
| 36 36 | 
             
                # Default enqueue_after_transaction_commit
         | 
| 37 37 | 
             
                DEFAULT_ENQUEUE_AFTER_TRANSACTION_COMMIT = false
         | 
| 38 | 
            +
                # Default smaller_number_is_higher_priority
         | 
| 39 | 
            +
                DEFAULT_SMALLER_NUMBER_IS_HIGHER_PRIORITY = true
         | 
| 38 40 |  | 
| 39 41 | 
             
                def self.validate_execution_mode(execution_mode)
         | 
| 40 42 | 
             
                  raise ArgumentError, "GoodJob execution mode must be one of #{EXECUTION_MODES.join(', ')}. It was '#{execution_mode}' which is not valid." unless execution_mode.in?(EXECUTION_MODES)
         | 
| @@ -228,8 +230,8 @@ module GoodJob | |
| 228 230 | 
             
                def queue_select_limit
         | 
| 229 231 | 
             
                  (
         | 
| 230 232 | 
             
                    options[:queue_select_limit] ||
         | 
| 231 | 
            -
             | 
| 232 | 
            -
             | 
| 233 | 
            +
                      rails_config[:queue_select_limit] ||
         | 
| 234 | 
            +
                      env['GOOD_JOB_QUEUE_SELECT_LIMIT']
         | 
| 233 235 | 
             
                  )&.to_i
         | 
| 234 236 | 
             
                end
         | 
| 235 237 |  | 
| @@ -238,8 +240,8 @@ module GoodJob | |
| 238 240 | 
             
                def idle_timeout
         | 
| 239 241 | 
             
                  (
         | 
| 240 242 | 
             
                    options[:idle_timeout] ||
         | 
| 241 | 
            -
             | 
| 242 | 
            -
             | 
| 243 | 
            +
                      rails_config[:idle_timeout] ||
         | 
| 244 | 
            +
                      env['GOOD_JOB_IDLE_TIMEOUT']
         | 
| 243 245 | 
             
                  )&.to_i || nil
         | 
| 244 246 | 
             
                end
         | 
| 245 247 |  | 
| @@ -267,69 +269,38 @@ module GoodJob | |
| 267 269 | 
             
                # Positive values will clean up after that many jobs have run, false or 0 will disable, and -1 will clean up after every job.
         | 
| 268 270 | 
             
                # @return [Integer, Boolean, nil]
         | 
| 269 271 | 
             
                def cleanup_interval_jobs
         | 
| 270 | 
            -
                  if rails_config.key?(:cleanup_interval_jobs)
         | 
| 271 | 
            -
             | 
| 272 | 
            -
             | 
| 273 | 
            -
             | 
| 274 | 
            -
             | 
| 275 | 
            -
             | 
| 276 | 
            -
             | 
| 277 | 
            -
                     | 
| 278 | 
            -
             | 
| 279 | 
            -
             | 
| 280 | 
            -
                      )
         | 
| 281 | 
            -
                      value = -1
         | 
| 282 | 
            -
                    end
         | 
| 283 | 
            -
                  elsif env.key?('GOOD_JOB_CLEANUP_INTERVAL_JOBS')
         | 
| 284 | 
            -
                    value = env['GOOD_JOB_CLEANUP_INTERVAL_JOBS']
         | 
| 285 | 
            -
                    if value.blank?
         | 
| 286 | 
            -
                      GoodJob.deprecator.warn(
         | 
| 287 | 
            -
                        %(Setting `GOOD_JOB_CLEANUP_INTERVAL_JOBS` to `""` will no longer disable count-based cleanups in GoodJob v4. Set to `0` to disable, or `-1` to run every time.)
         | 
| 288 | 
            -
                      )
         | 
| 289 | 
            -
                      value = false
         | 
| 290 | 
            -
                    elsif value == '0'
         | 
| 291 | 
            -
                      value = false
         | 
| 292 | 
            -
                    end
         | 
| 272 | 
            +
                  value = if rails_config.key?(:cleanup_interval_jobs)
         | 
| 273 | 
            +
                            rails_config[:cleanup_interval_jobs]
         | 
| 274 | 
            +
                          elsif env.key?('GOOD_JOB_CLEANUP_INTERVAL_JOBS')
         | 
| 275 | 
            +
                            env['GOOD_JOB_CLEANUP_INTERVAL_JOBS']
         | 
| 276 | 
            +
                          end
         | 
| 277 | 
            +
             | 
| 278 | 
            +
                  if value.in? [nil, "", true]
         | 
| 279 | 
            +
                    DEFAULT_CLEANUP_INTERVAL_JOBS
         | 
| 280 | 
            +
                  elsif value.in? [0, "0", false, "false"]
         | 
| 281 | 
            +
                    false
         | 
| 293 282 | 
             
                  else
         | 
| 294 | 
            -
                    value  | 
| 283 | 
            +
                    value ? value.to_i : false
         | 
| 295 284 | 
             
                  end
         | 
| 296 | 
            -
             | 
| 297 | 
            -
                  value ? value.to_i : false
         | 
| 298 285 | 
             
                end
         | 
| 299 286 |  | 
| 300 287 | 
             
                # Number of seconds a {Scheduler} will wait before automatically cleaning up preserved jobs.
         | 
| 301 288 | 
             
                # Positive values will clean up after that many jobs have run, false or 0 will disable, and -1 will clean up after every job.
         | 
| 302 | 
            -
                # @return [Integer, nil]
         | 
| 289 | 
            +
                # @return [Integer, Boolean, nil]
         | 
| 303 290 | 
             
                def cleanup_interval_seconds
         | 
| 304 | 
            -
                  if rails_config.key?(:cleanup_interval_seconds)
         | 
| 305 | 
            -
             | 
| 306 | 
            -
             | 
| 307 | 
            -
             | 
| 308 | 
            -
             | 
| 309 | 
            -
             | 
| 310 | 
            -
             | 
| 311 | 
            -
             | 
| 312 | 
            -
             | 
| 313 | 
            -
             | 
| 314 | 
            -
                        %(Setting `config.good_job.cleanup_interval_seconds` to `0` will disable time-based cleanups in GoodJob v4. Set to `false` to disable, or `-1` to run every time.)
         | 
| 315 | 
            -
                      )
         | 
| 316 | 
            -
                      value = -1
         | 
| 317 | 
            -
                    end
         | 
| 318 | 
            -
                  elsif env.key?('GOOD_JOB_CLEANUP_INTERVAL_SECONDS')
         | 
| 319 | 
            -
                    value = env['GOOD_JOB_CLEANUP_INTERVAL_SECONDS']
         | 
| 320 | 
            -
                    if value.blank?
         | 
| 321 | 
            -
                      GoodJob.deprecator.warn(
         | 
| 322 | 
            -
                        %(Setting `GOOD_JOB_CLEANUP_INTERVAL_SECONDS` to `""` will no longer disable time-based cleanups in GoodJob v4. Set to `0` to disable, or `-1` to run every time.)
         | 
| 323 | 
            -
                      )
         | 
| 324 | 
            -
                      value = false
         | 
| 325 | 
            -
                    elsif value == '0'
         | 
| 326 | 
            -
                      value = false
         | 
| 327 | 
            -
                    end
         | 
| 291 | 
            +
                  value = if rails_config.key?(:cleanup_interval_seconds)
         | 
| 292 | 
            +
                            rails_config[:cleanup_interval_seconds]
         | 
| 293 | 
            +
                          elsif env.key?('GOOD_JOB_CLEANUP_INTERVAL_SECONDS')
         | 
| 294 | 
            +
                            env['GOOD_JOB_CLEANUP_INTERVAL_SECONDS']
         | 
| 295 | 
            +
                          end
         | 
| 296 | 
            +
             | 
| 297 | 
            +
                  if value.nil? || value == "" || value == true
         | 
| 298 | 
            +
                    DEFAULT_CLEANUP_INTERVAL_SECONDS
         | 
| 299 | 
            +
                  elsif value.in? [0, "0", false, "false"]
         | 
| 300 | 
            +
                    false
         | 
| 328 301 | 
             
                  else
         | 
| 329 | 
            -
                    value  | 
| 302 | 
            +
                    value ? value.to_i : false
         | 
| 330 303 | 
             
                  end
         | 
| 331 | 
            -
             | 
| 332 | 
            -
                  value ? value.to_i : false
         | 
| 333 304 | 
             
                end
         | 
| 334 305 |  | 
| 335 306 | 
             
                # Tests whether to daemonize the process.
         | 
| @@ -378,7 +349,9 @@ module GoodJob | |
| 378 349 | 
             
                end
         | 
| 379 350 |  | 
| 380 351 | 
             
                def smaller_number_is_higher_priority
         | 
| 381 | 
            -
                  rails_config[:smaller_number_is_higher_priority]
         | 
| 352 | 
            +
                  return rails_config[:smaller_number_is_higher_priority] unless rails_config[:smaller_number_is_higher_priority].nil?
         | 
| 353 | 
            +
             | 
| 354 | 
            +
                  DEFAULT_SMALLER_NUMBER_IS_HIGHER_PRIORITY
         | 
| 382 355 | 
             
                end
         | 
| 383 356 |  | 
| 384 357 | 
             
                def dashboard_default_locale
         | 
    
        data/lib/good_job/version.rb
    CHANGED
    
    
    
        data/lib/good_job.rb
    CHANGED
    
    | @@ -269,7 +269,11 @@ module GoodJob | |
| 269 269 | 
             
              # Tests whether GoodJob can be safely upgraded to v4
         | 
| 270 270 | 
             
              # @return [Boolean]
         | 
| 271 271 | 
             
              def self.v4_ready?
         | 
| 272 | 
            -
                GoodJob | 
| 272 | 
            +
                GoodJob.deprecator.warn(<<~MSG)
         | 
| 273 | 
            +
                  Calling `GoodJob.v4_ready?` is deprecated and will be removed in GoodJob v5.
         | 
| 274 | 
            +
                  If you are reading this deprecation you are already on v4.
         | 
| 275 | 
            +
                MSG
         | 
| 276 | 
            +
                true
         | 
| 273 277 | 
             
              end
         | 
| 274 278 |  | 
| 275 279 | 
             
              # Deprecator for providing deprecation warnings.
         | 
| @@ -281,9 +285,6 @@ module GoodJob | |
| 281 285 | 
             
                end
         | 
| 282 286 | 
             
              end
         | 
| 283 287 |  | 
| 284 | 
            -
              include ActiveSupport::Deprecation::DeprecatedConstantAccessor
         | 
| 285 | 
            -
              deprecate_constant :Lockable, 'GoodJob::AdvisoryLockable', deprecator: deprecator
         | 
| 286 | 
            -
             | 
| 287 288 | 
             
              # Whether all GoodJob migrations have been applied.
         | 
| 288 289 | 
             
              # For use in tests/CI to validate GoodJob is up-to-date.
         | 
| 289 290 | 
             
              # @return [Boolean]
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: good_job
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 4.0. | 
| 4 | 
            +
              version: 4.0.2
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ben Sheldon
         | 
| 8 8 | 
             
            autorequire:
         | 
| 9 9 | 
             
            bindir: exe
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2024-07- | 
| 11 | 
            +
            date: 2024-07-08 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: activejob
         | 
| @@ -255,7 +255,7 @@ files: | |
| 255 255 | 
             
            - app/controllers/good_job/frontends_controller.rb
         | 
| 256 256 | 
             
            - app/controllers/good_job/jobs_controller.rb
         | 
| 257 257 | 
             
            - app/controllers/good_job/metrics_controller.rb
         | 
| 258 | 
            -
            - app/controllers/good_job/ | 
| 258 | 
            +
            - app/controllers/good_job/performance_controller.rb
         | 
| 259 259 | 
             
            - app/controllers/good_job/processes_controller.rb
         | 
| 260 260 | 
             
            - app/filters/good_job/base_filter.rb
         | 
| 261 261 | 
             
            - app/filters/good_job/batches_filter.rb
         | 
| @@ -307,7 +307,7 @@ files: | |
| 307 307 | 
             
            - app/views/good_job/jobs/_table.erb
         | 
| 308 308 | 
             
            - app/views/good_job/jobs/index.html.erb
         | 
| 309 309 | 
             
            - app/views/good_job/jobs/show.html.erb
         | 
| 310 | 
            -
            - app/views/good_job/ | 
| 310 | 
            +
            - app/views/good_job/performance/index.html.erb
         | 
| 311 311 | 
             
            - app/views/good_job/processes/index.html.erb
         | 
| 312 312 | 
             
            - app/views/good_job/shared/_alert.erb
         | 
| 313 313 | 
             
            - app/views/good_job/shared/_chart.erb
         | 
| 
            File without changes
         |