<< | Index | >>
Goal/Estimate/Evaluation:
Task
New file
Updated files
module Migel
...
defaults = {
...
'admins' => [],
'mail_from' => 'update@ywesee.com',
'mail_charset' => 'utf8',
'smtp_authtype' => :plain,
'smtp_domain' => 'ywesee.com',
'smtp_pass' => nil,
'smtp_port' => 587,
'smtp_server' => 'localhost',
'smtp_user' => 'update@ywesee.com',
}
--- db_user: 'postgres' db_auth: '' admins: - mhatakeyama@ywesee.com mail_from: mhatakeyama@ywesee.com smtp_domain: ywesee.com smtp_server: smtp.gmail.com smtp_user: mhatakeyama@ywesee.com smtp_pass: 'xxxx'
Run
migel> Migel::Util::Mail.notify_admins('test', ['hogehoge'])
Result
From mhatakeyama@ywesee.com To mhatakeyama@ywesee.com hogehoge
Experiment
def reported_save_all_products
lines = [
sprintf("%s: %s %s#save_all_products", Time.now.strftime('%c'), Migel.config.server_name, self.class)
]
#save_all_products
lines.concat report
rescue Exception => err
lines.push(err.class.to_s, err.message, *err.backtrace)
lines.concat report
ensure
subject = lines[0]
Mail.notify_admins(subject, lines)
end
def report
['report']
end
Run
migel> Migel::Util::Importer.new.reported_save_all_products -> Mon Sep 19 09:49:42 2011: migel Migel::Util::Importer#save_all_productsreport
Result
Experiment
def report
[
sprintf("Saved file: #{@saved_csv_file}"),
sprintf("Total %5i Migelids (Saved %5i / Unsaved %5i):", migel_code_list.length, @saved_migelids, @unsaved_migelids),
sprintf("Saved %5i Products:", @saved_products),
sprintf("Save time length: #{@save_time_length}"),
]
end
def save_all_products(file_name = 'migel_products_de.csv', lang = 'de', estimate = false)
@saved_products = 0
@saved_migelids = 0
@unsaved_migelids = 0
...
CSV.open(file_name, 'w') do |writer|
migel_codes.each_with_index do |migel_code, count|
...
@saved_products += 1
product_flag = true
end
if product_flag
@saved_migelids += 1
else
@unsaved_migelids += 1
end
time = estimate_time(start_time, total, count+1)
@save_time_length = time.split(':')[1].split(' ')[0,2].join(' ')
puts time if estimate
end # migel_codes
end # CSV
end
Run
migel> Migel::Util::Importer.new.reported_save_all_products('hogehoge.csv', 'de', true)
Result
Experiment
migel> Migel::Util::Importer.new.missing_article_name_migel_code_list('de', 'missing_migel_code_list.dat')
masa@masa ~/ywesee/migel_dev $ cat missing_migel_code_list.dat 01.01.01.00.1 01.01.02.00.2 03.03.01.00.1 ... masa@masa ~/ywesee/migel_dev $ head migel_product_de.csv 01.01.01.00.1,1624501,7612479001117,AMEDA Einhandmilchpumpe mit Flexishield,Nufer AG (Medizintechnik),,32.30,43.70,1,43.70,,A,2010-08-16T00:00:00+00:00,2010-07-09T00:00:00+00:00,DE 01.01.01.00.1,4637852,,AMEDA LACT-H Zweihandpumpe,Nufer AG,,17.80,24.10,1,24.10,,,,, 01.01.01.00.1,4443763,7640109051744,ARDO AMARYLL Individuelle Handmilchpumpe,Ardo medical AG,,41.30,74.00,1,74.00,,A,2010-08-16T00:00:00+00:00,2010-03-15T00:00:00+00:00,DE 01.01.01.00.1,1930445,8710103528920,AVENT PHILIPS ISIS Milchpumpe manuell,Philips AG (Haushalt),,60.30,95.00,1,95.00,100,A,2011-02-02T00:00:00+00:00,1997-12-22T00:00:00+00:00,DE ...
Note
Note
Result
Note
suspend
Task
de.oddb.org
sort function
sort link
create a remote object
Hypothesis
Experiment
require 'drb'
class Person
include DRbUndumped
attr_accessor :n
def initialize(n)
@n = n
end
end
require 'drb'
require 'person'
here = 'druby://localhost:17640'
@queue = Queue.new
arr = []
10.times {|i|
@queue.push(Person.new(i))
}
DRb.start_service(here, @queue)
require 'drb' #require 'person' there = 'druby://localhost:17640' DRb.start_service(nil) @queue = DRbObject.new(nil, there)
Run
masa@masa ~/work/drb_error_test $ irb irb(main):001:0> require 'server' => true irb(main):002:0> @queue.length => 10
masa@masa ~/work/drb_error_test $ irb irb(main):001:0> require 'client' => true irb(main):002:0> @queue.length => 10 irb(main):003:0> q = @queue.pop => #<DRb::DRbObject:0x7fe306620200 @uri="druby://localhost:17640", @ref=69898410693460> irb(main):004:0> q.n => 0 irb(main):005:0> @queue.length => 9
irb(main):004:0> GC.start => nil
irb(main):006:0> q.n RangeError: 0x3fbddfdae01c is recycled object
Note
Experiment
#include DRbUndumped
attr_accessor :n
def initialize(n)
@n = n
end
#require 'person'
there = 'druby://localhost:17640'
DRb.start_service(nil)
@queue = DRbObject.new(nil, there)
Run
masa@masa ~/work/drb_error_test $ irb irb(main):001:0> require 'server' => true irb(main):002:0> @queue.length => 10
masa@masa ~/work/drb_error_test $ irb
irb(main):001:0> require 'client'
=> true
irb(main):002:0> @queue.length
=> 10
irb(main):003:0> q = @queue.pop
=> #<DRb::DRbUnknown:0x7fe37e4b1c98 @buf="\004\bo:\vPerson\006:\a@ni\000", @name="Person">
irb(main):004:0> q.n
NoMethodError: undefined method `n' for #<DRb::DRbUnknown:0x7fe37e4b1c98>
from (irb):4
Note
Experiment
require 'person'
there = 'druby://localhost:17640'
DRb.start_service(nil)
@queue = DRbObject.new(nil, there)
Run
masa@masa ~/work/drb_error_test $ irb irb(main):001:0> require 'server' => true irb(main):002:0> @queue.length => 10
masa@masa ~/work/drb_error_test $ irb irb(main):001:0> require 'client' => true irb(main):002:0> @queue.length => 10 irb(main):003:0> q = @queue.pop => #<Person:0x7f1c49df9cf8 @n=0> irb(main):004:0> q.n => 0 irb(main):005:0> @queue.length => 9
irb(main):003:0> @queue.length => 9 irb(main):004:0> GC.start => nil
irb(main):006:0> q.n => 0
Note
Reference