que-web 0.5.0 → 0.6.0

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
  SHA1:
3
- metadata.gz: 7a2be8dc64c1ad88ec87d8850ca883595b6ddd37
4
- data.tar.gz: 2d0157762713b670c0d06be83ff0b48976164254
3
+ metadata.gz: 8e53a5fe5f561cbf449575e05ad141345204277b
4
+ data.tar.gz: 1af28bcab33f8059756d23ea09c1f02a8ff9076e
5
5
  SHA512:
6
- metadata.gz: 14476a70a236bc448525729dda19d0c13432daa7e81568b5dcd9a640885370c3f3943277fbeb9facd224d867edf7ecb424687aebf11ed4a7cfab945ff1e8d904
7
- data.tar.gz: e8d894075794550693695fcbb288f1ce16669e79b815c38e6b30378b773bb17629e169fc50625dbdea609d38e07d818d495ddcfca4fd902023b0e2b20ef5f517
6
+ metadata.gz: 2652924191d5f36e784f792667f8f46c5e0dc656dc6116125f1283bff1d021e9969dfb75e3551f9bc4c15c58136036faa191f0fe6153cbc3d323dc690abe146c
7
+ data.tar.gz: b6d717da60ddc3156fc4b9fed6c26578dd643a4e0a864ab8d06c1b12e361db4593823a4bbc673c3528feb6d64fc539836b5c9c1308ae52137c7920546709d729
data/README.md CHANGED
@@ -4,6 +4,11 @@ que-web is a web UI to the [Que](https://github.com/chanks/que) job queue.
4
4
 
5
5
  ![Que Web](https://raw.githubusercontent.com/statianzo/que-web/master/doc/queweb.png)
6
6
 
7
+
8
+ <a target='_blank' rel='nofollow' href='https://app.codesponsor.io/link/AitzkUqcdsSnujfFtmVhTLXR/statianzo/que-web'>
9
+ <img alt='Sponsor' width='888' height='68' src='https://app.codesponsor.io/embed/AitzkUqcdsSnujfFtmVhTLXR/statianzo/que-web.svg' />
10
+ </a>
11
+
7
12
  ## Installation
8
13
 
9
14
  Add this line to your application's Gemfile:
data/lib/que/web/sql.rb CHANGED
@@ -43,11 +43,15 @@ Que::Web::SQL = {
43
43
  DELETE
44
44
  FROM que_jobs
45
45
  WHERE job_id = $1::bigint
46
+ AND pg_try_advisory_lock($1::bigint)
47
+ RETURNING job_id
46
48
  SQL
47
49
  reschedule_job: <<-SQL.freeze,
48
50
  UPDATE que_jobs
49
51
  SET run_at = $2::timestamptz
50
52
  WHERE job_id = $1::bigint
53
+ AND pg_try_advisory_lock($1::bigint)
54
+ RETURNING job_id
51
55
  SQL
52
56
  fetch_job: <<-SQL.freeze,
53
57
  SELECT *
data/lib/que/web.rb CHANGED
@@ -62,10 +62,16 @@ module Que
62
62
  job_id = id.to_i
63
63
  if job_id > 0
64
64
  run_at = Time.now
65
- Que.execute SQL[:reschedule_job], [job_id, run_at]
66
- set_flash "info", "Job #{job_id} rescheduled for #{run_at}"
67
- end
68
65
 
66
+ updated_rows = Que.execute SQL[:reschedule_job], [job_id, run_at]
67
+
68
+ if updated_rows.empty?
69
+ # Didn't get the advisory lock
70
+ set_flash "warning", "Job #{job_id} not rescheduled as it was already runnning"
71
+ else
72
+ set_flash "info", "Job #{job_id} rescheduled for #{run_at}"
73
+ end
74
+ end
69
75
 
70
76
  redirect request.referrer, 303
71
77
  end
@@ -73,8 +79,14 @@ module Que
73
79
  delete "/jobs/:id" do |id|
74
80
  job_id = id.to_i
75
81
  if job_id > 0
76
- Que.execute SQL[:delete_job], [job_id]
77
- set_flash "warning", "Job #{job_id} deleted"
82
+ updated_rows = Que.execute SQL[:delete_job], [job_id]
83
+
84
+ if updated_rows.empty?
85
+ # Didn't get the advisory lock
86
+ set_flash "warning", "Job #{job_id} not deleted as it was already runnning"
87
+ else
88
+ set_flash "info", "Job #{job_id} deleted"
89
+ end
78
90
  end
79
91
 
80
92
  redirect request.referrer, 303
data/que-web.gemspec CHANGED
@@ -4,7 +4,7 @@ $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
4
4
 
5
5
  Gem::Specification.new do |spec|
6
6
  spec.name = "que-web"
7
- spec.version = "0.5.0"
7
+ spec.version = "0.6.0"
8
8
  spec.authors = ["Jason Staten"]
9
9
  spec.email = ["jstaten07@gmail.com"]
10
10
  spec.summary = %q{A web interface for the que queue}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: que-web
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.0
4
+ version: 0.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jason Staten
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-31 00:00:00.000000000 Z
11
+ date: 2017-10-12 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: que