bushpig 0.1.0 → 0.1.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Gemfile.lock +2 -2
- data/bin/bushpig +6 -0
- data/gemset.nix +138 -3
- data/lib/bushpig/client.rb +3 -1
- data/lib/bushpig/server.rb +20 -3
- data/lib/bushpig/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc9bf6fabf6038b858a576750b32c827ad7095bca278de9bf1ae207258fd0c94
|
4
|
+
data.tar.gz: 36be95562838f7868ccc13d76a5e4b77bc75220f18f19693e2fee001d710e21b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: cd5f62fdff7ace18ffac4ba7332d29f68a53debeda49f155fe784fe3ff14f2e70ef07cf26623087d134ae7c8e361cd8fe2536afb9f135d05716f850680ae255b
|
7
|
+
data.tar.gz: f90b3ba40eb138d0e9a589d9d47f727218761f0a4cc8e022da0fce3395894cd50415f15349cf421a3995a56ecc08582bbe6a9b6b47ea79b1288bbce41e4c5fbe
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
bushpig (0.1.
|
4
|
+
bushpig (0.1.6)
|
5
5
|
connection_pool (~> 2.2)
|
6
6
|
json (>= 1.8)
|
7
7
|
redis (~> 3.3)
|
@@ -17,7 +17,7 @@ GEM
|
|
17
17
|
connection_pool (2.2.5)
|
18
18
|
e2mmap (0.1.0)
|
19
19
|
jaro_winkler (1.5.4)
|
20
|
-
json (1.
|
20
|
+
json (2.1.0)
|
21
21
|
kramdown (2.3.1)
|
22
22
|
rexml
|
23
23
|
kramdown-parser-gfm (1.1.0)
|
data/bin/bushpig
CHANGED
data/gemset.nix
CHANGED
@@ -9,6 +9,26 @@
|
|
9
9
|
};
|
10
10
|
version = "2.4.2";
|
11
11
|
};
|
12
|
+
backport = {
|
13
|
+
groups = ["default" "development"];
|
14
|
+
platforms = [];
|
15
|
+
source = {
|
16
|
+
remotes = ["https://rubygems.org"];
|
17
|
+
sha256 = "1xmjljpyx5ly078gi0lmmgkv4y0msxxa3hmv74bzxzp3l8qbn5vc";
|
18
|
+
type = "gem";
|
19
|
+
};
|
20
|
+
version = "1.1.2";
|
21
|
+
};
|
22
|
+
benchmark = {
|
23
|
+
groups = ["default" "development"];
|
24
|
+
platforms = [];
|
25
|
+
source = {
|
26
|
+
remotes = ["https://rubygems.org"];
|
27
|
+
sha256 = "1jvrl7400fv7v2jjri1r7ilj3sri36hzipwwgpn5psib4c9c59c6";
|
28
|
+
type = "gem";
|
29
|
+
};
|
30
|
+
version = "0.1.1";
|
31
|
+
};
|
12
32
|
bushpig = {
|
13
33
|
dependencies = ["connection_pool" "json" "redis" "thor"];
|
14
34
|
groups = ["default"];
|
@@ -166,7 +186,7 @@
|
|
166
186
|
path = ./.;
|
167
187
|
type = "path";
|
168
188
|
};
|
169
|
-
version = "0.1.
|
189
|
+
version = "0.1.6";
|
170
190
|
};
|
171
191
|
coderay = {
|
172
192
|
groups = ["default" "development"];
|
@@ -337,6 +357,26 @@
|
|
337
357
|
};
|
338
358
|
version = "2.2.5";
|
339
359
|
};
|
360
|
+
e2mmap = {
|
361
|
+
groups = ["default" "development"];
|
362
|
+
platforms = [];
|
363
|
+
source = {
|
364
|
+
remotes = ["https://rubygems.org"];
|
365
|
+
sha256 = "0n8gxjb63dck3vrmsdcqqll7xs7f3wk78mw8w0gdk9wp5nx6pvj5";
|
366
|
+
type = "gem";
|
367
|
+
};
|
368
|
+
version = "0.1.0";
|
369
|
+
};
|
370
|
+
jaro_winkler = {
|
371
|
+
groups = ["default" "development"];
|
372
|
+
platforms = [];
|
373
|
+
source = {
|
374
|
+
remotes = ["https://rubygems.org"];
|
375
|
+
sha256 = "1y8l6k34svmdyqxya3iahpwbpvmn3fswhwsvrz0nk1wyb8yfihsh";
|
376
|
+
type = "gem";
|
377
|
+
};
|
378
|
+
version = "1.5.4";
|
379
|
+
};
|
340
380
|
json = {
|
341
381
|
groups = ["default"];
|
342
382
|
platforms = [{
|
@@ -491,10 +531,32 @@
|
|
491
531
|
}];
|
492
532
|
source = {
|
493
533
|
remotes = ["https://rubygems.org"];
|
494
|
-
sha256 = "
|
534
|
+
sha256 = "01v6jjpvh3gnq6sgllpfqahlgxzj50ailwhj9b3cd20hi2dx0vxp";
|
535
|
+
type = "gem";
|
536
|
+
};
|
537
|
+
version = "2.1.0";
|
538
|
+
};
|
539
|
+
kramdown = {
|
540
|
+
dependencies = ["rexml"];
|
541
|
+
groups = ["default" "development"];
|
542
|
+
platforms = [];
|
543
|
+
source = {
|
544
|
+
remotes = ["https://rubygems.org"];
|
545
|
+
sha256 = "0jdbcjv4v7sj888bv3vc6d1dg4ackkh7ywlmn9ln2g9alk7kisar";
|
546
|
+
type = "gem";
|
547
|
+
};
|
548
|
+
version = "2.3.1";
|
549
|
+
};
|
550
|
+
kramdown-parser-gfm = {
|
551
|
+
dependencies = ["kramdown"];
|
552
|
+
groups = ["default" "development"];
|
553
|
+
platforms = [];
|
554
|
+
source = {
|
555
|
+
remotes = ["https://rubygems.org"];
|
556
|
+
sha256 = "0a8pb3v951f4x7h968rqfsa19c8arz21zw1vaj42jza22rap8fgv";
|
495
557
|
type = "gem";
|
496
558
|
};
|
497
|
-
version = "1.
|
559
|
+
version = "1.1.0";
|
498
560
|
};
|
499
561
|
method_source = {
|
500
562
|
groups = ["default" "development"];
|
@@ -506,6 +568,27 @@
|
|
506
568
|
};
|
507
569
|
version = "1.0.0";
|
508
570
|
};
|
571
|
+
mini_portile2 = {
|
572
|
+
groups = ["default" "development"];
|
573
|
+
platforms = [];
|
574
|
+
source = {
|
575
|
+
remotes = ["https://rubygems.org"];
|
576
|
+
sha256 = "0xg1x4708a4pn2wk8qs2d8kfzzdyv9kjjachg2f1phsx62ap2rx2";
|
577
|
+
type = "gem";
|
578
|
+
};
|
579
|
+
version = "2.5.1";
|
580
|
+
};
|
581
|
+
nokogiri = {
|
582
|
+
dependencies = ["mini_portile2" "racc"];
|
583
|
+
groups = ["default" "development"];
|
584
|
+
platforms = [];
|
585
|
+
source = {
|
586
|
+
remotes = ["https://rubygems.org"];
|
587
|
+
sha256 = "19d78mdg2lbz9jb4ph6nk783c9jbsdm8rnllwhga6pd53xffp6x0";
|
588
|
+
type = "gem";
|
589
|
+
};
|
590
|
+
version = "1.11.3";
|
591
|
+
};
|
509
592
|
parallel = {
|
510
593
|
groups = ["default" "development"];
|
511
594
|
platforms = [];
|
@@ -538,6 +621,16 @@
|
|
538
621
|
};
|
539
622
|
version = "0.14.1";
|
540
623
|
};
|
624
|
+
racc = {
|
625
|
+
groups = ["default" "development"];
|
626
|
+
platforms = [];
|
627
|
+
source = {
|
628
|
+
remotes = ["https://rubygems.org"];
|
629
|
+
sha256 = "178k7r0xn689spviqzhvazzvxfq6fyjldxb3ywjbgipbfi4s8j1g";
|
630
|
+
type = "gem";
|
631
|
+
};
|
632
|
+
version = "1.5.2";
|
633
|
+
};
|
541
634
|
rainbow = {
|
542
635
|
groups = ["default" "development"];
|
543
636
|
platforms = [];
|
@@ -727,6 +820,17 @@
|
|
727
820
|
};
|
728
821
|
version = "2.1.1";
|
729
822
|
};
|
823
|
+
reverse_markdown = {
|
824
|
+
dependencies = ["nokogiri"];
|
825
|
+
groups = ["default" "development"];
|
826
|
+
platforms = [];
|
827
|
+
source = {
|
828
|
+
remotes = ["https://rubygems.org"];
|
829
|
+
sha256 = "0w6fv779542vdliq2kmikfhymjv55z8mgzblkfjdy2agl07da9c6";
|
830
|
+
type = "gem";
|
831
|
+
};
|
832
|
+
version = "2.0.0";
|
833
|
+
};
|
730
834
|
rexml = {
|
731
835
|
groups = ["default" "development"];
|
732
836
|
platforms = [];
|
@@ -769,6 +873,17 @@
|
|
769
873
|
};
|
770
874
|
version = "1.11.0";
|
771
875
|
};
|
876
|
+
solargraph = {
|
877
|
+
dependencies = ["backport" "benchmark" "e2mmap" "jaro_winkler" "kramdown" "kramdown-parser-gfm" "parser" "reverse_markdown" "rubocop" "thor" "tilt" "yard"];
|
878
|
+
groups = ["development"];
|
879
|
+
platforms = [];
|
880
|
+
source = {
|
881
|
+
remotes = ["https://rubygems.org"];
|
882
|
+
sha256 = "0xrad7amwf3nmdbif566qprk6xvwydxwz0s7arnzpvr01anc9gcl";
|
883
|
+
type = "gem";
|
884
|
+
};
|
885
|
+
version = "0.40.4";
|
886
|
+
};
|
772
887
|
thor = {
|
773
888
|
groups = ["default"];
|
774
889
|
platforms = [{
|
@@ -928,6 +1043,16 @@
|
|
928
1043
|
};
|
929
1044
|
version = "1.1.0";
|
930
1045
|
};
|
1046
|
+
tilt = {
|
1047
|
+
groups = ["default" "development"];
|
1048
|
+
platforms = [];
|
1049
|
+
source = {
|
1050
|
+
remotes = ["https://rubygems.org"];
|
1051
|
+
sha256 = "0rn8z8hda4h41a64l0zhkiwz2vxw9b1nb70gl37h1dg2k874yrlv";
|
1052
|
+
type = "gem";
|
1053
|
+
};
|
1054
|
+
version = "2.0.10";
|
1055
|
+
};
|
931
1056
|
unicode-display_width = {
|
932
1057
|
groups = ["default" "development"];
|
933
1058
|
platforms = [];
|
@@ -938,4 +1063,14 @@
|
|
938
1063
|
};
|
939
1064
|
version = "2.0.0";
|
940
1065
|
};
|
1066
|
+
yard = {
|
1067
|
+
groups = ["default" "development"];
|
1068
|
+
platforms = [];
|
1069
|
+
source = {
|
1070
|
+
remotes = ["https://rubygems.org"];
|
1071
|
+
sha256 = "0qzr5j1a1cafv81ib3i51qyl8jnmwdxlqi3kbiraldzpbjh4ln9h";
|
1072
|
+
type = "gem";
|
1073
|
+
};
|
1074
|
+
version = "0.9.26";
|
1075
|
+
};
|
941
1076
|
}
|
data/lib/bushpig/client.rb
CHANGED
@@ -4,9 +4,10 @@ module Bushpig
|
|
4
4
|
class Client
|
5
5
|
attr_accessor :default_ttl
|
6
6
|
|
7
|
-
def initialize(pool)
|
7
|
+
def initialize(pool, &callback)
|
8
8
|
@pool = pool
|
9
9
|
@default_ttl = nil
|
10
|
+
@callback = callback
|
10
11
|
end
|
11
12
|
|
12
13
|
def redis_pool
|
@@ -18,6 +19,7 @@ module Bushpig
|
|
18
19
|
end
|
19
20
|
|
20
21
|
def submit(queue, job, score: default_score, ttl: default_ttl)
|
22
|
+
@callback.call(job)
|
21
23
|
redis_pool.with do |conn|
|
22
24
|
conn.set(Bushpig.job_key(job.job_id), job.job_payload, ex: ttl)
|
23
25
|
conn.zadd(Bushpig.set_key(queue), score, job.job_id)
|
data/lib/bushpig/server.rb
CHANGED
@@ -4,7 +4,7 @@ module Bushpig
|
|
4
4
|
class Server
|
5
5
|
def initialize(pool, timeout: 2, &handler)
|
6
6
|
@pool = pool
|
7
|
-
@timeout = timeout.
|
7
|
+
@timeout = timeout.to_i
|
8
8
|
@handler = handler
|
9
9
|
@done = false
|
10
10
|
end
|
@@ -19,10 +19,16 @@ module Bushpig
|
|
19
19
|
puts 'INT received, shutdown flagged'
|
20
20
|
@done = true
|
21
21
|
end
|
22
|
+
Signal.trap('TERM') do
|
23
|
+
reset_signals
|
24
|
+
puts 'TERM received, shutdown flagged'
|
25
|
+
@done = true
|
26
|
+
end
|
22
27
|
end
|
23
28
|
|
24
29
|
def reset_signals
|
25
30
|
Signal.trap('INT', 'DEFAULT')
|
31
|
+
Signal.trap('TERM', 'DEFAULT')
|
26
32
|
end
|
27
33
|
|
28
34
|
def serve(queue)
|
@@ -49,11 +55,22 @@ module Bushpig
|
|
49
55
|
elapsed = finished - started
|
50
56
|
puts "Job completed: jid-#{job.job_id} #{elapsed} seconds"
|
51
57
|
rescue StandardError => e
|
52
|
-
# Job handler raised exception
|
53
58
|
finished = monotonic_time
|
54
59
|
elapsed = finished - started
|
55
60
|
puts "Job raised exception: jid-#{job.job_id} #{elapsed} seconds: #{e}"
|
56
|
-
|
61
|
+
notify_exception(job, e)
|
62
|
+
end
|
63
|
+
|
64
|
+
def honeybadger
|
65
|
+
@honeybadger ||= begin
|
66
|
+
Honeybadger
|
67
|
+
rescue NameError
|
68
|
+
nil
|
69
|
+
end
|
70
|
+
end
|
71
|
+
|
72
|
+
def notify_exception(job, exception)
|
73
|
+
honeybadger&.notify(exception, context: { job_id: job.job_id, job: job.to_s })
|
57
74
|
end
|
58
75
|
|
59
76
|
def monotonic_time
|
data/lib/bushpig/version.rb
CHANGED