brendan-skynet 0.9.311 → 0.9.312

Sign up to get free protection for your applications and to get access to all the features.
data/Manifest.txt CHANGED
@@ -36,6 +36,7 @@ lib/skynet/message_queue_adapters/mysql.rb
36
36
  lib/skynet/message_queue_adapters/tuple_space.rb
37
37
  lib/skynet/message.rb
38
38
  lib/skynet/message_queue.rb
39
+ lib/skynet/object_extensions.rb
39
40
  lib/skynet/partitioners.rb
40
41
  lib/skynet/ruby_extensions.rb
41
42
  lib/skynet/task.rb
data/lib/skynet.rb CHANGED
@@ -22,6 +22,7 @@ require 'skynet/mapreduce_test'
22
22
  require 'skynet/launcher'
23
23
  require 'skynet/console'
24
24
  require 'skynet/mapreduce_helper'
25
+ require 'skynet/object_extensions'
25
26
 
26
27
  begin
27
28
  require 'fastthread'
@@ -0,0 +1,68 @@
1
+ module Skynet::ObjectExtensions
2
+
3
+ def send_later(method, *arguments, &block)
4
+
5
+ raise ArgumentError("send_later can not serialize blocks.") if block_given?
6
+
7
+ if is_a?(Class)
8
+ data = {
9
+ :class_name => name,
10
+ :method => method,
11
+ :arguments => arguments
12
+ }.to_yaml
13
+ else
14
+ data = {
15
+ :object => self,
16
+ :method => method,
17
+ :arguments => arguments
18
+ }.to_yaml
19
+ end
20
+
21
+ jobopts = {
22
+ :single => true,
23
+ :mappers => 1,
24
+ :map_data => [data],
25
+ :name => "send_later #{self.class}##{method}",
26
+ :map_name => "",
27
+ :map_timeout => 60,
28
+ :reduce_timeout => 60,
29
+ :master_timeout => 60,
30
+ :master_result_timeout => 1.minute,
31
+ :map_reduce_class => Skynet::ObjectAsync,
32
+ :master_retry => 0,
33
+ :map_retry => 0
34
+ }
35
+ job = Skynet::AsyncJob.new(jobopts)
36
+ job.run
37
+
38
+ end
39
+
40
+ private
41
+
42
+ def method_missing(method_id, *arguments, &block)
43
+ return super unless method_id.to_s =~ /^(.*)_later$/
44
+ send_later($1, *arguments)
45
+ end
46
+
47
+ end
48
+
49
+ Object.send :include, Skynet::ObjectExtensions
50
+
51
+ class Skynet::ObjectAsync
52
+ include SkynetDebugger
53
+
54
+ class << self
55
+ def map(datas)
56
+ begin
57
+ datas.each do |yaml|
58
+ data = YAML.load(yaml)
59
+ data[:object] = data[:class_name].constantize if data[:class_name]
60
+ data[:object].send(data[:method], *data[:arguments])
61
+ end
62
+ rescue Exception => e
63
+ error "Error in #{self} #{e.inspect} with data #{datas.inspect}"
64
+ end
65
+ return
66
+ end
67
+ end
68
+ end
@@ -2,7 +2,7 @@ class Skynet #:nodoc:
2
2
  module VERSION #:nodoc:
3
3
  MAJOR = 0
4
4
  MINOR = 9
5
- TINY = 311
5
+ TINY = 312
6
6
 
7
7
  STRING = [MAJOR, MINOR, TINY].join('.')
8
8
  end
data/skynet.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = %q{skynet}
3
- s.version = "0.9.311"
3
+ s.version = "0.9.312"
4
4
 
5
5
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
6
6
  s.authors = ["Adam Pisoni", "Brendan Baldwin"]
@@ -9,7 +9,7 @@ Gem::Specification.new do |s|
9
9
  s.email = %q{apisoni@geni.com}
10
10
  s.executables = ["skynet", "skynet_install", "skynet_tuplespace_server"]
11
11
  s.extra_rdoc_files = ["History.txt", "License.txt", "Manifest.txt", "README.txt"]
12
- s.files = ["History.txt", "License.txt", "Manifest.txt", "README.txt", "Rakefile", "app_generators/skynet_install/USAGE", "app_generators/skynet_install/skynet_install_generator.rb", "app_generators/skynet_install/templates/migration.rb", "app_generators/skynet_install/templates/skynet_config.rb", "app_generators/skynet_install/templates/skynet_initializer.rb", "app_generators/skynet_install/templates/skynet_mysql_schema.sql", "bin/skynet", "bin/skynet_install", "bin/skynet_tuplespace_server", "config/hoe.rb", "config/requirements.rb", "extras/README", "extras/init.d/skynet", "extras/rails/controllers/skynet_controller.rb", "extras/rails/views/skynet/index.html.erb", "lib/skynet.rb", "lib/skynet/active_record_extensions.rb", "lib/skynet/config.rb", "lib/skynet/console.rb", "lib/skynet/console_helper.rb", "lib/skynet/debugger.rb", "lib/skynet/guid_generator.rb", "lib/skynet/job.rb", "lib/skynet/launcher.rb", "lib/skynet/logger.rb", "lib/skynet/manager.rb", "lib/skynet/mapreduce_helper.rb", "lib/skynet/mapreduce_test.rb", "lib/skynet/message_queue_adapters/message_queue_adapter.rb", "lib/skynet/message_queue_adapters/mysql.rb", "lib/skynet/message_queue_adapters/tuple_space.rb", "lib/skynet/message.rb", "lib/skynet/message_queue.rb", "lib/skynet/partitioners.rb", "lib/skynet/ruby_extensions.rb", "lib/skynet/task.rb", "lib/skynet/tuplespace_server.rb", "lib/skynet/worker.rb", "lib/skynet/version.rb", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "skynet.gemspec", "tasks/deployment.rake", "tasks/environment.rake"]
12
+ s.files = ["History.txt", "License.txt", "Manifest.txt", "README.txt", "Rakefile", "app_generators/skynet_install/USAGE", "app_generators/skynet_install/skynet_install_generator.rb", "app_generators/skynet_install/templates/migration.rb", "app_generators/skynet_install/templates/skynet_config.rb", "app_generators/skynet_install/templates/skynet_initializer.rb", "app_generators/skynet_install/templates/skynet_mysql_schema.sql", "bin/skynet", "bin/skynet_install", "bin/skynet_tuplespace_server", "config/hoe.rb", "config/requirements.rb", "extras/README", "extras/init.d/skynet", "extras/rails/controllers/skynet_controller.rb", "extras/rails/views/skynet/index.html.erb", "lib/skynet.rb", "lib/skynet/active_record_extensions.rb", "lib/skynet/config.rb", "lib/skynet/console.rb", "lib/skynet/console_helper.rb", "lib/skynet/debugger.rb", "lib/skynet/guid_generator.rb", "lib/skynet/job.rb", "lib/skynet/launcher.rb", "lib/skynet/logger.rb", "lib/skynet/manager.rb", "lib/skynet/mapreduce_helper.rb", "lib/skynet/mapreduce_test.rb", "lib/skynet/message_queue_adapters/message_queue_adapter.rb", "lib/skynet/message_queue_adapters/mysql.rb", "lib/skynet/message_queue_adapters/tuple_space.rb", "lib/skynet/message.rb", "lib/skynet/message_queue.rb", "lib/skynet/object_extensions.rb", "lib/skynet/partitioners.rb", "lib/skynet/ruby_extensions.rb", "lib/skynet/task.rb", "lib/skynet/tuplespace_server.rb", "lib/skynet/worker.rb", "lib/skynet/version.rb", "script/destroy", "script/generate", "script/txt2html", "setup.rb", "skynet.gemspec", "tasks/deployment.rake", "tasks/environment.rake"]
13
13
  s.has_rdoc = true
14
14
  s.homepage = %q{http://skynet.rubyforge.org}
15
15
  s.rdoc_options = ["--main", "README.txt"]
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brendan-skynet
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.9.311
4
+ version: 0.9.312
5
5
  platform: ruby
6
6
  authors:
7
7
  - Adam Pisoni
@@ -83,6 +83,7 @@ files:
83
83
  - lib/skynet/message_queue_adapters/tuple_space.rb
84
84
  - lib/skynet/message.rb
85
85
  - lib/skynet/message_queue.rb
86
+ - lib/skynet/object_extensions.rb
86
87
  - lib/skynet/partitioners.rb
87
88
  - lib/skynet/ruby_extensions.rb
88
89
  - lib/skynet/task.rb