dj_split 1.0.0 → 1.0.1
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/.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: []
|