dj_split 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/README.md +9 -5
- data/dj_split.gemspec +2 -2
- data/lib/dj_split/version.rb +1 -1
- metadata +11 -9
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: dc2e050c9e58032f167dc04f7d4685be6479e28bc5400fa53d7ff988fdafce7a
|
4
|
+
data.tar.gz: 91cccdc1b6ed01676da03b2652ee91ac4b09cc8f3d052ada1f798a147325e92f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: dc3ef609a3fb6a3951800bb97fd711127d223735a3c2bef66b156b381d047ba7270f922c5bc776d0895725211c82feacca6a969c9f6192db5399fc040e79e148
|
7
|
+
data.tar.gz: a533c0b7839dd8c491971780f63328cc2966b4fbf2f3f9176ce5f54f55d83a054348514368e59c250e1488247a2b505fd46f539b10706ea2662d519ef55ca862
|
data/.gitignore
CHANGED
data/README.md
CHANGED
@@ -1,9 +1,13 @@
|
|
1
1
|
# Delayed Job Split Feature
|
2
2
|
|
3
3
|
Class [**"DjSplit::Split"**](https://github.com/nehalamin93/dj_split/blob/master/lib/dj_split/split.rb) is designed to **Split Time Taking Delayed Jobs, Crons, Bulk Operations, etc** into **smaller size multiple Delayed Jobs**.
|
4
|
-
These **Jobs** should be **mutually exclusive** of each other and should be able to run **concurrently**.
|
4
|
+
These **Sub-Jobs** should be **mutually exclusive** of each other and should be able to run **concurrently**.
|
5
5
|
|
6
|
-
|
6
|
+
**Parallelism** can be achieved across **multiple servers** through **Delayed Jobs** which can directly impact performance.
|
7
|
+
|
8
|
+
These **Sub-Jobs** can be picked by **Delayed Job Workers** within or across **Multiple Servers**.
|
9
|
+
|
10
|
+
**Performance** can improve up to **n+1 times**, where **n = number of workers** picking the jobs.
|
7
11
|
|
8
12
|
Class behaves like **Delayed Job Worker**, it also **picks and processes delayed job** entries.
|
9
13
|
|
@@ -11,14 +15,14 @@ Class behaves like **Delayed Job Worker**, it also **picks and processes delayed
|
|
11
15
|
|
12
16
|
## Purpose
|
13
17
|
|
14
|
-
To distribute the load among **Multiple Workers**.
|
18
|
+
To distribute the load among **Multiple Workers** and to improve **Performance**.
|
15
19
|
|
16
20
|
## Installation
|
17
21
|
|
18
22
|
Add this line to your application's Gemfile:
|
19
23
|
|
20
24
|
```ruby
|
21
|
-
gem 'dj_split'
|
25
|
+
gem 'dj_split'
|
22
26
|
```
|
23
27
|
|
24
28
|
And then execute:
|
@@ -45,7 +49,7 @@ end
|
|
45
49
|
```
|
46
50
|
$ A.function1(user_ids_array1, other_attr1)
|
47
51
|
|
48
|
-
|
52
|
+
to:
|
49
53
|
|
50
54
|
$ DjSplit::Split.new(queue_options: {queue: queue_name}, split_options: {size: 1000, by: 2}).enqueue(A, "function1", user_ids_array1, other_attr1)
|
51
55
|
|
data/dj_split.gemspec
CHANGED
@@ -9,8 +9,8 @@ Gem::Specification.new do |spec|
|
|
9
9
|
spec.authors = ["Md Nehal Amin"]
|
10
10
|
spec.email = ["nehalamin93@gmail.com"]
|
11
11
|
|
12
|
-
spec.summary = %q{
|
13
|
-
spec.description = %q{Gem is designed to Split Time Taking Jobs(
|
12
|
+
spec.summary = %q{Parallelise Time Taking Job across Multiple Processes in Single or Multiple Servers by Splitting into Delayed Jobs.}
|
13
|
+
spec.description = %q{Gem is designed to "Split or Break" Time Taking Jobs(Delayed Jobs, Crons, Bulk Operations, etc.) into smaller size Mutually Exclusive Delayed Jobs. These Sub-Jobs can be picked by multiple workers in Single or Multiple Servers. After splitting and enqueuing, the process will wait for the sub-jobs to complete and also processes sub-jobs instead of blocking. Parallelism can be achieved across multiple servers through Delayed Jobs which can directly impact performance. Performance can improve up to "n+1" times, where n = number of workers picking the jobs.}
|
14
14
|
spec.homepage = ""
|
15
15
|
spec.license = "MIT"
|
16
16
|
|
data/lib/dj_split/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dj_split
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Md Nehal Amin
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-08-
|
11
|
+
date: 2018-08-04 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -136,11 +136,13 @@ dependencies:
|
|
136
136
|
- - ">="
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0'
|
139
|
-
description: Gem is designed to Split Time Taking Jobs(
|
140
|
-
etc.) into smaller size
|
141
|
-
multiple workers in
|
142
|
-
|
143
|
-
of blocking.
|
139
|
+
description: Gem is designed to "Split or Break" Time Taking Jobs(Delayed Jobs, Crons,
|
140
|
+
Bulk Operations, etc.) into smaller size Mutually Exclusive Delayed Jobs. These
|
141
|
+
Sub-Jobs can be picked by multiple workers in Single or Multiple Servers. After
|
142
|
+
splitting and enqueuing, the process will wait for the sub-jobs to complete and
|
143
|
+
also processes sub-jobs instead of blocking. Parallelism can be achieved across
|
144
|
+
multiple servers through Delayed Jobs which can directly impact performance. Performance
|
145
|
+
can improve up to "n+1" times, where n = number of workers picking the jobs.
|
144
146
|
email:
|
145
147
|
- nehalamin93@gmail.com
|
146
148
|
executables: []
|
@@ -185,6 +187,6 @@ rubyforge_project:
|
|
185
187
|
rubygems_version: 2.7.7
|
186
188
|
signing_key:
|
187
189
|
specification_version: 4
|
188
|
-
summary:
|
189
|
-
|
190
|
+
summary: Parallelise Time Taking Job across Multiple Processes in Single or Multiple
|
191
|
+
Servers by Splitting into Delayed Jobs.
|
190
192
|
test_files: []
|