antelopes 0.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 +7 -0
- data/lib/antelopes.rb +66 -0
- metadata +142 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: e88bf96f54206dbee16ac32a93408d5e228d948c
|
4
|
+
data.tar.gz: f336c55853631cff7ee6440e091b87100ebc6402
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: 426d2a3f03e65a6690e769e0a186173772c48ad302e4149f8b343a1064ec34ecd127b4097f5607aed37b1d257a67e48ee734c2e1950603de69719313076f7b5f
|
7
|
+
data.tar.gz: 2fce0e2754ddf088687c98758c64e07d0d9bdae16c012b6fa4d6e3a3a0acb91e824cb60e0c8c13ba646bf83e609b36530fac1da709f82f15e460f5ad2ca0ce89
|
data/lib/antelopes.rb
ADDED
@@ -0,0 +1,66 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
3
|
+
require 'serverengine'
|
4
|
+
require 'connection_pool'
|
5
|
+
require 'redis'
|
6
|
+
require 'securerandom'
|
7
|
+
require 'json'
|
8
|
+
|
9
|
+
# Nice and smart background jobs.
|
10
|
+
#
|
11
|
+
# @since 0.0.1
|
12
|
+
module Antelopes
|
13
|
+
# Method to call to start the workers
|
14
|
+
#
|
15
|
+
# @since 0.0.1
|
16
|
+
def self.start
|
17
|
+
::ServerEngine.create(Master, Looper, configuration).run
|
18
|
+
end
|
19
|
+
|
20
|
+
# Method to add a job to queue.
|
21
|
+
#
|
22
|
+
# @example Instance method call
|
23
|
+
# Antelopes.push('MyClass', method: :call, args: Hash[foo: 'bar'])
|
24
|
+
# # The worker will run the following code:
|
25
|
+
# MyClass.new.call(foo: 'bar')
|
26
|
+
#
|
27
|
+
# @example Class method call
|
28
|
+
# Antelopes.push('MyClass', class_method: :call, args: Hash[foo: 'bar'])
|
29
|
+
# # The worker will run the following code:
|
30
|
+
# MyClass.call(foo: 'bar')
|
31
|
+
#
|
32
|
+
# @param job_class [String] class of the job to perform
|
33
|
+
# @param method [Symbol] public method of the instance to call
|
34
|
+
# @param class_method [Symbol] public method of the class to call
|
35
|
+
# @param args [Hash] parameters for the method
|
36
|
+
#
|
37
|
+
# @since 0.0.1
|
38
|
+
def self.push(job_class, method: nil, class_method: nil, args: Hash[])
|
39
|
+
Pusher.new.call(class: job_class, method: method, class_method: class_method, args: args)
|
40
|
+
end
|
41
|
+
|
42
|
+
# Loopers configuration to pass to ServerEngine
|
43
|
+
#
|
44
|
+
# @since 0.0.1
|
45
|
+
# @todo Make it configurable via a configuration file or environment variables
|
46
|
+
def self.configuration
|
47
|
+
Hash[
|
48
|
+
worker_type: 'thread',
|
49
|
+
workers: 4,
|
50
|
+
supervisor: true,
|
51
|
+
enable_detach: true,
|
52
|
+
log: 'myserver.log',
|
53
|
+
pid_path: 'myserver.pid'
|
54
|
+
]
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
58
|
+
require 'antelopes/redis'
|
59
|
+
|
60
|
+
require 'antelopes/master'
|
61
|
+
require 'antelopes/looper'
|
62
|
+
require 'antelopes/worker'
|
63
|
+
require 'antelopes/job'
|
64
|
+
|
65
|
+
require 'antelopes/pusher'
|
66
|
+
require 'antelopes/puller'
|
metadata
ADDED
@@ -0,0 +1,142 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: antelopes
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Marion Duprey
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-04-20 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: connection_pool
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '2'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '2'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: redis
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '3'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '3'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: serverengine
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - "~>"
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '2'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - "~>"
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '2'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: minitest
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">"
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">"
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: minitest-reporters
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">"
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">"
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: rake
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">"
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">"
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: pry
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">"
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">"
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
111
|
+
description:
|
112
|
+
email: titeiko@gmail.com
|
113
|
+
executables: []
|
114
|
+
extensions: []
|
115
|
+
extra_rdoc_files: []
|
116
|
+
files:
|
117
|
+
- lib/antelopes.rb
|
118
|
+
homepage: https://github.com/titeiko/antelopes
|
119
|
+
licenses:
|
120
|
+
- MIT
|
121
|
+
metadata: {}
|
122
|
+
post_install_message:
|
123
|
+
rdoc_options: []
|
124
|
+
require_paths:
|
125
|
+
- lib
|
126
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
127
|
+
requirements:
|
128
|
+
- - ">="
|
129
|
+
- !ruby/object:Gem::Version
|
130
|
+
version: '2.3'
|
131
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
132
|
+
requirements:
|
133
|
+
- - ">="
|
134
|
+
- !ruby/object:Gem::Version
|
135
|
+
version: '0'
|
136
|
+
requirements: []
|
137
|
+
rubyforge_project:
|
138
|
+
rubygems_version: 2.5.2
|
139
|
+
signing_key:
|
140
|
+
specification_version: 4
|
141
|
+
summary: Nice and smart background jobs
|
142
|
+
test_files: []
|