peplum 0.2.5 → 0.2.7

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aec29bf9b09d3b32cb143536ea66a1550b41008e7856108949ef2a45f74c3761
4
- data.tar.gz: 656a2e85c329a0005da906ba9f649553277c40feb772930ca66c99b5115be906
3
+ metadata.gz: 2c2c58c0b4f8d82bb6376ca24b17b1b07585630e257f0c38717d19a02a71ce76
4
+ data.tar.gz: 235f665ccb1f8c49d6a991166a55f5871556a483c3b57937d89427cf5694a2f6
5
5
  SHA512:
6
- metadata.gz: 3894e8846b387ab36ba705b9137ab7ea4a122057d62378224bc43f29caaf1600ce27d41ffb3472e81b0524b5d03330f935a3d79a3ae0f7197d4ae8500c218e91
7
- data.tar.gz: 8c420ac4afbb2788b0434971e6865e33b03d086cc2275bc504fe65f0f06ced8ea729abf26494bc360875c2a3be1ea13a06da5940062a907bc48d0148172c82db
6
+ metadata.gz: 6625f8916a0cfb646972c700d1f68cd7d97ba5fbc23f9637896190fffdce28f64c2878e2cc0c811ba37702fab63fe1fa65f0e8561203cbad420177e293e82a7c
7
+ data.tar.gz: 22cf60063e6040de45ba80c3fb5cfa1930898bcd46615b6ce80bf67baa12d4b9eb30ca9d8e79c3cbdc6b635600fb29e14eadac9940cb00a144ac0c6b7cf71f22
@@ -5,8 +5,6 @@ require 'peplum/core_ext/array'
5
5
 
6
6
  module Peplum
7
7
  class Application < Cuboid::Application
8
- require 'peplum/application/peers'
9
-
10
8
  require 'peplum/application/services/shared_hash'
11
9
  require 'peplum/application/services/scheduler'
12
10
 
@@ -27,11 +25,12 @@ module Peplum
27
25
  end
28
26
 
29
27
  attr_reader :peers
28
+ attr_reader :master
30
29
 
31
30
  def initialize(*)
32
31
  super
33
32
 
34
- @peers = Peers.new
33
+ @peers = Cuboid::RPC::Server::Instance::Peers.new
35
34
  end
36
35
 
37
36
  def run
@@ -53,6 +52,11 @@ module Peplum
53
52
  end
54
53
  end
55
54
 
55
+ def worker?
56
+ # Has a master?
57
+ !!@master
58
+ end
59
+
56
60
  # Implements:
57
61
  # * `.run` -- Worker; executes its payload against `objects`.
58
62
  # * `.group` -- Splits given `objects` into groups for each worker.
@@ -73,13 +77,13 @@ module Peplum
73
77
 
74
78
  def execute( peplum_options, payload_options )
75
79
  master_info = peplum_options.delete( 'master' )
80
+ @master = Processes::Instances.connect( master_info['url'], master_info['token'] )
76
81
 
77
82
  self.peers.set( peplum_options.delete( 'peers' ) || {} )
78
83
 
79
84
  report_data = payload.run( peplum_options['objects'], payload_options )
80
85
 
81
- master = Processes::Instances.connect( master_info['url'], master_info['token'] )
82
- master.scheduler.report report_data, Cuboid::Options.rpc.url
86
+ @master.scheduler.report report_data, Cuboid::Options.rpc.url
83
87
  end
84
88
 
85
89
  def schedule( peplum_options, payload_options )
@@ -121,7 +125,7 @@ module Peplum
121
125
  objects: groups.pop,
122
126
  peers: peers,
123
127
  master: {
124
- url: Cuboid::Options.rpc.url,
128
+ url: Cuboid::Options.rpc.url,
125
129
  token: Cuboid::Options.datastore.token
126
130
  }
127
131
  },
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Peplum
4
- VERSION = "0.2.5"
4
+ VERSION = "0.2.7"
5
5
  end
data/peplum.gemspec CHANGED
@@ -8,8 +8,8 @@ Gem::Specification.new do |spec|
8
8
  spec.authors = ["Tasos Laskos"]
9
9
  spec.email = ["tasos.laskos@gmail.com"]
10
10
 
11
- spec.summary = "Distributed computing made easy."
12
- spec.description = "Distributed computing made easy."
11
+ spec.summary = "Distributed parallel computing made easy."
12
+ spec.description = "Distributed parallel computing made easy."
13
13
  spec.homepage = "http://ecsypno.com/"
14
14
  spec.required_ruby_version = ">= 2.6.0"
15
15
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: peplum
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.5
4
+ version: 0.2.7
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tasos Laskos
@@ -24,7 +24,7 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
- description: Distributed computing made easy.
27
+ description: Distributed parallel computing made easy.
28
28
  email:
29
29
  - tasos.laskos@gmail.com
30
30
  executables: []
@@ -34,7 +34,6 @@ files:
34
34
  - bin/.gitkeep
35
35
  - lib/peplum.rb
36
36
  - lib/peplum/application.rb
37
- - lib/peplum/application/peers.rb
38
37
  - lib/peplum/application/services/scheduler.rb
39
38
  - lib/peplum/application/services/shared_hash.rb
40
39
  - lib/peplum/core_ext/array.rb
@@ -61,5 +60,5 @@ requirements: []
61
60
  rubygems_version: 3.4.13
62
61
  signing_key:
63
62
  specification_version: 4
64
- summary: Distributed computing made easy.
63
+ summary: Distributed parallel computing made easy.
65
64
  test_files: []
@@ -1,33 +0,0 @@
1
- module Peplum
2
- class Application
3
-
4
- class Peers
5
- include Enumerable
6
-
7
- def initialize
8
- @peers = {}
9
- end
10
-
11
- def set( peer_info )
12
- peer_info.each do |url, token|
13
- next if url == self.self_url
14
- @peers[url] = Peplum::Application.connect( url: url, token: token )
15
- end
16
-
17
- nil
18
- end
19
-
20
- def each( &block )
21
- @peers.each do |_, client|
22
- block.call client
23
- end
24
- end
25
-
26
- def self_url
27
- Cuboid::Options.rpc.url
28
- end
29
-
30
- end
31
-
32
- end
33
- end