crocodile 2.0 → 2.1.0
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 +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
|