good_job 2.6.0 → 2.7.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 9a5722e06395e2296ea815b0b5780b9c6e24f368168e9951de4bd774c50e154c
4
- data.tar.gz: 5a0c5fdff3baf14dcd6153ecb3103c8b0aea1d73f3ff65018c7f32960704b75f
3
+ metadata.gz: ad8ca019c816dee452b246cdaa6d806844bcbd6aca63da6e5d52c87828c9c8e4
4
+ data.tar.gz: 343c128a0d8477688e8f38d214add4c341dbfce694c19c6c2acf9cf7bb5c5cef
5
5
  SHA512:
6
- metadata.gz: 198cb74f7235861982090467767970685dc2a326b6086030e03697d55c865edb12f28f0e915ef1c1f0d6438495572023d0d59af23071f16ea9262d5c91e53f9c
7
- data.tar.gz: ea2546a48fdfbed66d016cf52beaed68d5f487a329d37b7c7152eec0b318eb4597887945180a4232a3462588f8ec6ede5558587f29cfefb33406bb5c6465263e
6
+ metadata.gz: d5153a01609aefefd4ac23319ba76755ba13ea64c749b9b582fda5a17a497c0d640e20e6db91aa9eb9b18042b62283acc8dd25c67f1389290291ae55c2187f33
7
+ data.tar.gz: e145b2a1d26eaf4b07e60ca8826e39216de230569f197f0eafae481b7716754aeb95a4bce54330e15389612f49361f320c8934965beca9c4c60d97f1a84f3b05
data/CHANGELOG.md CHANGED
@@ -1,5 +1,75 @@
1
1
  # Changelog
2
2
 
3
+ ## [v2.7.1](https://github.com/bensheldon/good_job/tree/v2.7.1) (2021-11-26)
4
+
5
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v2.7.0...v2.7.1)
6
+
7
+ **Fixed bugs:**
8
+
9
+ - Unclear error when database can't be reached [\#457](https://github.com/bensheldon/good_job/issues/457)
10
+ - Remove Concurrent::Delay wrapping of database-loading methods [\#458](https://github.com/bensheldon/good_job/pull/458) ([bensheldon](https://github.com/bensheldon))
11
+ - Do not delete csp policies when checking csp policies [\#456](https://github.com/bensheldon/good_job/pull/456) ([JonathanFrias](https://github.com/JonathanFrias))
12
+
13
+ **Closed issues:**
14
+
15
+ - How to suppress job scheduler logs? [\#455](https://github.com/bensheldon/good_job/issues/455)
16
+ - Configuration in environments/\*.rb overrides application.rb [\#453](https://github.com/bensheldon/good_job/issues/453)
17
+ - Testing jobs synchronously [\#435](https://github.com/bensheldon/good_job/issues/435)
18
+ - HTTP health check endpoint [\#403](https://github.com/bensheldon/good_job/issues/403)
19
+
20
+ ## [v2.7.0](https://github.com/bensheldon/good_job/tree/v2.7.0) (2021-11-10)
21
+
22
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v2.6.2...v2.7.0)
23
+
24
+ **Implemented enhancements:**
25
+
26
+ - Add http probe for CLI healthcheck/readiness/liveliness [\#452](https://github.com/bensheldon/good_job/pull/452) ([bensheldon](https://github.com/bensheldon))
27
+ - Add explicit Content Security Policy \(CSP\) for Dashboard [\#449](https://github.com/bensheldon/good_job/pull/449) ([bensheldon](https://github.com/bensheldon))
28
+
29
+ **Closed issues:**
30
+
31
+ - Add a default Content-Security-Policy for the Dashboard [\#420](https://github.com/bensheldon/good_job/issues/420)
32
+
33
+ ## [v2.6.2](https://github.com/bensheldon/good_job/tree/v2.6.2) (2021-11-05)
34
+
35
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v2.6.1...v2.6.2)
36
+
37
+ **Fixed bugs:**
38
+
39
+ - Rename Filterable\#search to Filterable\#search\_text to avoid name collision [\#451](https://github.com/bensheldon/good_job/pull/451) ([bensheldon](https://github.com/bensheldon))
40
+
41
+ **Closed issues:**
42
+
43
+ - v2.6.1 is incompatible with gem thinking-sphinx [\#450](https://github.com/bensheldon/good_job/issues/450)
44
+
45
+ ## [v2.6.1](https://github.com/bensheldon/good_job/tree/v2.6.1) (2021-11-05)
46
+
47
+ [Full Changelog](https://github.com/bensheldon/good_job/compare/v2.6.0...v2.6.1)
48
+
49
+ **Implemented enhancements:**
50
+
51
+ - Allow job management \(retry, destroy\) through the Web UI [\#256](https://github.com/bensheldon/good_job/issues/256)
52
+ - Add fulltext search filter [\#440](https://github.com/bensheldon/good_job/pull/440) ([bensheldon](https://github.com/bensheldon))
53
+
54
+ **Fixed bugs:**
55
+
56
+ - Unsubscribed LISTEN forever after database connection lost [\#303](https://github.com/bensheldon/good_job/issues/303)
57
+ - Add `PG::UnableToSend` and `PG::Error` as a Notifier connection error [\#445](https://github.com/bensheldon/good_job/pull/445) ([bensheldon](https://github.com/bensheldon))
58
+
59
+ **Closed issues:**
60
+
61
+ - Question: what's the correct way to handle database connection pool size when using cron [\#443](https://github.com/bensheldon/good_job/issues/443)
62
+ - Add a search bar to Dashboard [\#432](https://github.com/bensheldon/good_job/issues/432)
63
+ - Hacktoberfest 2021 [\#393](https://github.com/bensheldon/good_job/issues/393)
64
+ - Ideas for improvements to Cron [\#392](https://github.com/bensheldon/good_job/issues/392)
65
+ - Fix flakey test that times out [\#382](https://github.com/bensheldon/good_job/issues/382)
66
+
67
+ **Merged pull requests:**
68
+
69
+ - Update development dependencies [\#447](https://github.com/bensheldon/good_job/pull/447) ([bensheldon](https://github.com/bensheldon))
70
+ - Replace Chartist.js with Chart.js [\#444](https://github.com/bensheldon/good_job/pull/444) ([bensheldon](https://github.com/bensheldon))
71
+ - Fix JRuby flake: "Scheduler\#create\_thread returns false if there are no threads available" [\#442](https://github.com/bensheldon/good_job/pull/442) ([bensheldon](https://github.com/bensheldon))
72
+
3
73
  ## [v2.6.0](https://github.com/bensheldon/good_job/tree/v2.6.0) (2021-10-30)
4
74
 
5
75
  [Full Changelog](https://github.com/bensheldon/good_job/compare/v2.5.0...v2.6.0)
data/README.md CHANGED
@@ -55,6 +55,7 @@ For more of the story of GoodJob, read the [introductory blog post](https://isla
55
55
  - [Migrate to GoodJob from a different ActiveJob backend](#migrate-to-goodjob-from-a-different-activejob-backend)
56
56
  - [Monitor and preserve worked jobs](#monitor-and-preserve-worked-jobs)
57
57
  - [PgBouncer compatibility](#pgbouncer-compatibility)
58
+ - [CLI HTTP health check probes](#cli-http-health-check-probes)
58
59
  - [Contribute](#contribute)
59
60
  - [Gem development](#gem-development)
60
61
  - [Release](#release)
@@ -170,6 +171,7 @@ Options:
170
171
  [--enable-cron] # Whether to run cron process (default: false)
171
172
  [--daemonize] # Run as a background daemon (default: false)
172
173
  [--pidfile=PIDFILE] # Path to write daemonized Process ID (env var: GOOD_JOB_PIDFILE, default: tmp/pids/good_job.pid)
174
+ [--probe-port=PORT] # Port for http health check (env var: GOOD_JOB_PROBE_PORT, default: nil)
173
175
 
174
176
  Executes queued jobs.
175
177
 
@@ -837,6 +839,61 @@ A workaround to this limitation is to make a direct database connection availabl
837
839
  GoodJob.active_record_parent_class = "ApplicationDirectRecord"
838
840
  ```
839
841
 
842
+ ### CLI HTTP health check probes
843
+
844
+ GoodJob's CLI offers an http health check probe to better manage process lifecycle in containerized environments like Kubernetes:
845
+
846
+ ```bash
847
+ # Run the CLI with a health check on port 7001
848
+ good_job start --probe-port=7001
849
+
850
+ # or via an environment variable
851
+ GOOD_JOB_PROBE_PORT=7001 good_job start
852
+
853
+ # Probe the status
854
+ curl localhost:7001/status
855
+ curl localhost:7001/status/started
856
+ curl localhost:7001/status/connected
857
+ ```
858
+
859
+ Multiple health checks are available at different paths:
860
+
861
+ - `/` or `/status`: the CLI process is running
862
+ - `/status/started`: the multithreaded job executor is running
863
+ - `/status/connected`: the database connection is established
864
+
865
+ This can be configured, for example with Kubernetes:
866
+
867
+ ```yaml
868
+ spec:
869
+ containers:
870
+ - name: good_job
871
+ image: my_app:latest
872
+ env:
873
+ - name: RAILS_ENV
874
+ value: production
875
+ - name: GOOD_JOB_PROBE_PORT
876
+ value: 7001
877
+ command:
878
+ - good_job
879
+ - start
880
+ ports:
881
+ - name: probe-port
882
+ containerPort: 7001
883
+ startupProbe:
884
+ httpGet:
885
+ path: "/status/started"
886
+ port: probe-port
887
+ failureThreshold: 30
888
+ periodSeconds: 10
889
+ livenessProbe:
890
+ httpGet:
891
+ path: "/status/connected"
892
+ port: probe-port
893
+ failureThreshold: 1
894
+ periodSeconds: 10
895
+ ```
896
+
840
897
  ## Contribute
841
898
 
842
899
  Contributions are welcomed and appreciated 🙏
@@ -0,0 +1 @@
1
+ GoodJob = {};
@@ -18,3 +18,8 @@
18
18
  .ct-label.ct-horizontal {
19
19
  white-space: nowrap;
20
20
  }
21
+
22
+ .chart-wrapper {
23
+ position: relative;
24
+ height: 200px;
25
+ }