crocodile 2.0 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +16 -1
- data/crocodile.gemspec +1 -1
- data/lib/crocodile/crocodile_job.rb +4 -0
- data/lib/crocodile/crocodile_process.rb +21 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: cd541c42fadfc1ce295680a377a16f018da2db52
|
4
|
+
data.tar.gz: 41334fd456c4dd3c12460b41a65cb17451ac2832
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5531125dce13ed3413590e28e667ec7af4565c1ed3dfa0c3c02cc7c0520d6f2913c78d7435b00dccbbaba961350584076b3c780e6e970f3fcb798579d928d15c
|
7
|
+
data.tar.gz: 6768976d6532d98e9ed9f5519eb2f074b21b0af78a0031d8c7b1d8b1526283502fe99fcbe8bf176d8cb9542fc7c972afca31c31c776ca7781be7577c14bb2087
|
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
##Crocodile
|
2
2
|
|
3
|
-
Crocodile is a gem for running periodic [background] jobs written in Ruby.
|
3
|
+
Crocodile is a [gem](https://rubygems.org/gems/crocodile) for running periodic [background] jobs written in Ruby.
|
4
4
|
Crocodile provides a worker binary that's in charge of running the jobs you define, it also provides a base class for those jobs.
|
5
5
|
|
6
6
|
###Install
|
@@ -117,6 +117,21 @@ If you need just schedule the job instead to run it immediately, you do it throu
|
|
117
117
|
crocodile dummy schedule
|
118
118
|
```
|
119
119
|
|
120
|
+
By default job will be scheduled to start after `interval`.
|
121
|
+
|
122
|
+
If you want to schedule your job to start at certain hour you can redefine `start_at` method with format `hh:mm`:
|
123
|
+
|
124
|
+
```
|
125
|
+
class DummyJob < CrocodileJob
|
126
|
+
def self.start_at
|
127
|
+
"05:00"
|
128
|
+
end
|
129
|
+
end
|
130
|
+
|
131
|
+
crocodile dummy schedule
|
132
|
+
```
|
133
|
+
|
134
|
+
When `start_at` is defined your job will start working at `start_at` and will execute each `interval`.
|
120
135
|
|
121
136
|
So, that's pretty much it. We hope you enjoy it.
|
122
137
|
|
data/crocodile.gemspec
CHANGED
@@ -8,16 +8,34 @@ class CrocodileProcess
|
|
8
8
|
end
|
9
9
|
|
10
10
|
def start
|
11
|
-
schedule(
|
11
|
+
schedule(true)
|
12
12
|
end
|
13
13
|
|
14
|
-
def schedule(launch_immediately=false)
|
14
|
+
def schedule(launch_immediately = false)
|
15
15
|
require @job_path
|
16
16
|
job_class = constantize(@name)
|
17
17
|
|
18
|
+
run_enabled = true
|
19
|
+
|
18
20
|
Signal.trap("INT") { EventMachine.stop }
|
19
21
|
Signal.trap("TERM") { EventMachine.stop }
|
20
22
|
|
23
|
+
if !launch_immediately && !job_class.start_at.nil?
|
24
|
+
run_enabled = false
|
25
|
+
EventMachine.run do
|
26
|
+
timer = EventMachine::PeriodicTimer.new(5) do
|
27
|
+
if Time.now.to_s.match(/\s#{job_class.start_at}:\d{2}/)
|
28
|
+
job_class.logger.info "Starting scheduled job (#{job_class.start_at})"
|
29
|
+
launch_immediately = true
|
30
|
+
run_enabled = true
|
31
|
+
|
32
|
+
timer.cancel
|
33
|
+
EventMachine.stop
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
21
39
|
EventMachine.run do
|
22
40
|
EventMachine.next_tick do
|
23
41
|
job_class.logger.info job_class.message
|
@@ -33,7 +51,7 @@ class CrocodileProcess
|
|
33
51
|
EventMachine.stop
|
34
52
|
end
|
35
53
|
end
|
36
|
-
end
|
54
|
+
end if run_enabled
|
37
55
|
end
|
38
56
|
|
39
57
|
def stop
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crocodile
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Lautaro Orazi
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2015-
|
12
|
+
date: 2015-07-30 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: eventmachine
|