good_job 3.27.1 → 3.27.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 6f6e4655250d166696f48733e756d69164f1c1b6371d925fa5333fd538c7850c
4
- data.tar.gz: c65cd8ace06f23e8647ff6747eb754151a39a732a7ac9cb79534573016f20b87
3
+ metadata.gz: 1f1caf94daea82b4e273aeaa01d2a44def87934a36275fbe5ca007a27bfceb4d
4
+ data.tar.gz: ad46d59cc2166d6386a17a3d0924f27f81c16e1670121b7f252ec9515da4b011
5
5
  SHA512:
6
- metadata.gz: 1bb8b51381b2e61dcb024d15fd555f2cc36a5dbd1abb0439b20e8db182c332f136be433108a07cc0fdfcc7a2321035f1136676833a81387783694db5a9c6ea32
7
- data.tar.gz: 1054014eb0dea19141fde93ef3a99b6533804f9f5714a97be43bb9bf57183297371df458f7ac55c0c77fd3bf7d8504d49c980d9ed5f5b94f378f1468356d6c68
6
+ metadata.gz: 0c2be38cdbbfc7bb63f65451efc85ac51519f1ebabe7f9324ff5a652344b2e06fb75e93a0f0db0cda5038cf562ea793cf5eab6022cc219a304cab5be42b8dd0c
7
+ data.tar.gz: fe5e5d39d0f02a071d8906b155bac1b9467167565544595c38932870e85aff88569b5c9194ea20cf8ea403c134b3a8833e5075e3c8c0bda51982ddea31e6c406
data/CHANGELOG.md CHANGED
@@ -1,5 +1,18 @@
1
1
  # Changelog
2
2
 
3
+ ## [v3.27.2](https://github.com/bensheldon/good_job/tree/v3.27.2) (2024-03-27)
4
+
5
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.27.1...v3.27.2)
6
+
7
+ **Fixed bugs:**
8
+
9
+ - Use scope-resolutioned constants in Notifier loop [\#1300](https://github.com/bensheldon/good_job/pull/1300) ([bensheldon](https://github.com/bensheldon))
10
+ - Invoke inline Bootstrap Color Mode javascript above CSS link tag to better avoid flash of un-themed content [\#1298](https://github.com/bensheldon/good_job/pull/1298) ([bensheldon](https://github.com/bensheldon))
11
+
12
+ **Closed issues:**
13
+
14
+ - Buggy theme animation while switching tabs [\#1224](https://github.com/bensheldon/good_job/issues/1224)
15
+
3
16
  ## [v3.27.1](https://github.com/bensheldon/good_job/tree/v3.27.1) (2024-03-24)
4
17
 
5
18
  [Full Changelog](https://github.com/bensheldon/good_job/compare/v3.27.0...v3.27.1)
data/README.md CHANGED
@@ -11,6 +11,8 @@ GoodJob is a multithreaded, Postgres-based, Active Job backend for Ruby on Rails
11
11
  - **Designed for Active Job.** Complete support for [async, queues, delays, priorities, timeouts, and retries](https://edgeguides.rubyonrails.org/active_job_basics.html) with near-zero configuration.
12
12
  - **Built for Rails.** Fully adopts Ruby on Rails [threading and code execution guidelines](https://guides.rubyonrails.org/threading_and_code_execution.html) with [Concurrent::Ruby](https://github.com/ruby-concurrency/concurrent-ruby).
13
13
  - **Backed by Postgres.** Relies upon Postgres integrity, session-level Advisory Locks to provide run-once safety and stay within the limits of `schema.rb`, and LISTEN/NOTIFY to reduce queuing latency.
14
+ - **Fully featured.** Includes support for cron-like scheduled jobs, batches, concurrency and throttling controls, and a powerful Web Dashboard (check out the [Demo](https://goodjob-demo.herokuapp.com/)).
15
+ - **Flexible and lightweight.** Safely runnable within a single existing web process or scaled via an independent CLI process across development, test, and production environments.
14
16
  - **For most workloads.** Targets full-stack teams, economy-minded solo developers, and applications that enqueue 1-million jobs/day and more.
15
17
 
16
18
  For more of the story of GoodJob, read the [introductory blog post](https://island94.org/2020/07/introducing-goodjob-1-0).
@@ -21,6 +23,7 @@ For more of the story of GoodJob, read the [introductory blog post](https://isla
21
23
  | | Queues, priority, retries | Database | Concurrency | Reliability/Integrity | Latency |
22
24
  |-----------------|---------------------------|---------------------------------------|-------------------|------------------------|--------------------------|
23
25
  | **GoodJob** | ✅ Yes | ✅ Postgres | ✅ Multithreaded | ✅ ACID, Advisory Locks | ✅ Postgres LISTEN/NOTIFY |
26
+ | **Solid Queue** | ✅ Yes | ✅ Postgres and other databases ✨ | 🔶 Multithreaded in forked process | ✅ ACID, Advisory Locks | 🔶 Polling |
24
27
  | **Que** | ✅ Yes | 🔶️ Postgres, requires `structure.sql` | ✅ Multithreaded | ✅ ACID, Advisory Locks | ✅ Postgres LISTEN/NOTIFY |
25
28
  | **Delayed Job** | ✅ Yes | ✅ Postgres | 🔴 Single-threaded | ✅ ACID, record-based | 🔶 Polling |
26
29
  | **Sidekiq** | ✅ Yes | 🔴 Redis | ✅ Multithreaded | 🔴 Crashes lose jobs | ✅ Redis BRPOP |
@@ -6,6 +6,20 @@
6
6
  <meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport">
7
7
  <%= csrf_meta_tags %>
8
8
  <%= csp_meta_tag %>
9
+
10
+ <%# Bootstrap Color Modes
11
+ "It is suggested to include the JavaScript at the top of your page
12
+ to reduce potential screen flickering during reloading of your site."
13
+ https://getbootstrap.com/docs/5.3/customize/color-modes/#javascript
14
+ %>
15
+ <%= tag.script "", nonce: content_security_policy_nonce do %>
16
+ let theme = localStorage.getItem('good_job-theme');
17
+ if (!["light", "dark"].includes(theme)) {
18
+ theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
19
+ }
20
+ document.documentElement.setAttribute('data-bs-theme', theme);
21
+ <% end %>
22
+
9
23
  <%# Do not use asset tag helpers to avoid paths being overriden by config.asset_host %>
10
24
  <%= tag.link rel: "stylesheet", href: frontend_static_path(:bootstrap, format: :css, v: GoodJob::VERSION, locale: nil), nonce: content_security_policy_nonce %>
11
25
  <%= tag.link rel: "stylesheet", href: frontend_static_path(:style, format: :css, v: GoodJob::VERSION, locale: nil), nonce: content_security_policy_nonce %>
@@ -16,14 +30,6 @@
16
30
  <% importmaps = GoodJob::FrontendsController.js_modules.keys.index_with { |module_name| frontend_module_path(module_name, format: :js, locale: nil, v: GoodJob::VERSION) } %>
17
31
  <%= tag.script({ imports: importmaps }.to_json.html_safe, type: "importmap", nonce: content_security_policy_nonce) %>
18
32
  <%= tag.script "", type: "module", nonce: content_security_policy_nonce do %> import "application"; <% end %>
19
- <%= tag.script "", nonce: content_security_policy_nonce do %>
20
- // Ensure theme is updated before dom loads to avoid flash of style
21
- let theme = localStorage.getItem('good_job-theme');
22
- if (!["light", "dark"].includes(theme)) {
23
- theme = window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light';
24
- }
25
- document.documentElement.setAttribute('data-bs-theme', theme);
26
- <% end %>
27
33
  </head>
28
34
  <body>
29
35
  <div class="d-flex flex-column min-vh-100">
@@ -50,7 +50,7 @@ module GoodJob # :nodoc:
50
50
  # Send a message via Postgres NOTIFY
51
51
  # @param message [#to_json]
52
52
  def self.notify(message)
53
- connection = Execution.connection
53
+ connection = ::GoodJob::Execution.connection
54
54
  connection.exec_query <<~SQL.squish
55
55
  NOTIFY #{CHANNEL}, #{connection.quote(message.to_json)}
56
56
  SQL
@@ -248,8 +248,8 @@ module GoodJob # :nodoc:
248
248
 
249
249
  def with_connection
250
250
  Rails.application.executor.wrap do
251
- self.connection = Execution.connection_pool.checkout.tap do |conn|
252
- Execution.connection_pool.remove(conn)
251
+ self.connection = ::GoodJob::Execution.connection_pool.checkout.tap do |conn|
252
+ ::GoodJob::Execution.connection_pool.remove(conn)
253
253
  end
254
254
  end
255
255
  connection.execute("SET application_name = #{connection.quote(self.class.name)}")
@@ -2,7 +2,7 @@
2
2
 
3
3
  module GoodJob
4
4
  # GoodJob gem version.
5
- VERSION = '3.27.1'
5
+ VERSION = '3.27.2'
6
6
 
7
7
  # GoodJob version as Gem::Version object
8
8
  GEM_VERSION = Gem::Version.new(VERSION)
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: 3.27.1
4
+ version: 3.27.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-03-24 00:00:00.000000000 Z
11
+ date: 2024-03-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activejob