Class: TreasureData::Job
Direct Known Subclasses
Constant Summary collapse
- STATUS_QUEUED =
"queued"
- STATUS_BOOTING =
"booting"
- STATUS_RUNNING =
"running"
- STATUS_SUCCESS =
"success"
- STATUS_ERROR =
"error"
- STATUS_KILLED =
"killed"
- FINISHED_STATUS =
[STATUS_SUCCESS, STATUS_ERROR, STATUS_KILLED]
Instance Attribute Summary collapse
-
#db_name ⇒ Object
readonly
Returns the value of attribute db_name.
-
#duration ⇒ Object
readonly
Returns the value of attribute duration.
- #job_id ⇒ Object readonly
-
#num_records ⇒ Object
readonly
Returns the value of attribute num_records.
-
#org_name ⇒ Object
readonly
Returns the value of attribute org_name.
-
#priority ⇒ Object
readonly
Returns the value of attribute priority.
-
#result_url ⇒ Object
readonly
Returns the value of attribute result_url.
-
#retry_limit ⇒ Object
readonly
Returns the value of attribute retry_limit.
- #type ⇒ Object readonly
Attributes inherited from Model
Instance Method Summary collapse
-
#auto_update_status=(bool) ⇒ Object
set whether it update status if the job is not finished yet or not.
-
#auto_update_status? ⇒ Boolean
whether it update status if the job is not finished yet or not.
- #cpu_time ⇒ String
- #debug ⇒ Boolean
- #end_at ⇒ Time?
- #error? ⇒ Boolean
- #finished? ⇒ Boolean
- #hive_result_schema ⇒ Array
-
#initialize(client, job_id, type, query, status = nil, url = nil, debug = nil, start_at = nil, end_at = nil, cpu_time = nil, result_size = nil, result = nil, result_url = nil, hive_result_schema = nil, priority = nil, retry_limit = nil, org_name = nil, db_name = nil, duration = nil, num_records = nil) ⇒ Job
constructor
A new instance of Job.
- #kill! ⇒ Object
- #killed? ⇒ Boolean
- #query ⇒ String
- #queued? ⇒ Boolean
- #result ⇒ Array
- #result_each {|result| ... } ⇒ nil
- #result_each_with_compr_size {|result| ... } ⇒ nil
- #result_format(format, io = nil, &block) ⇒ nil, String
- #result_raw(format, io = nil, &block) ⇒ Object
- #result_size ⇒ String
- #running? ⇒ Boolean
- #start_at ⇒ Time?
- #status ⇒ String
- #success? ⇒ Boolean
- #update_progress! ⇒ Object
- #update_status! ⇒ Object
- #url ⇒ String
- #wait(*args) ⇒ Object
Constructor Details
#initialize(client, job_id, type, query, status = nil, url = nil, debug = nil, start_at = nil, end_at = nil, cpu_time = nil, result_size = nil, result = nil, result_url = nil, hive_result_schema = nil, priority = nil, retry_limit = nil, org_name = nil, db_name = nil, duration = nil, num_records = nil) ⇒ Job
Returns a new instance of Job.
407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 |
# File 'lib/td/client/model.rb', line 407 def initialize(client, job_id, type, query, status=nil, url=nil, debug=nil, start_at=nil, end_at=nil, cpu_time=nil, result_size=nil, result=nil, result_url=nil, hive_result_schema=nil, priority=nil, retry_limit=nil, org_name=nil, db_name=nil, duration=nil, num_records=nil) super(client) @job_id = job_id @type = type @url = url @query = query @status = status @debug = debug @start_at = start_at @end_at = end_at @cpu_time = cpu_time @result_size = result_size @result = result @result_url = result_url @hive_result_schema = hive_result_schema @priority = priority @retry_limit = retry_limit @db_name = db_name @duration = duration @num_records = num_records @auto_update_status = true end |
Instance Attribute Details
#db_name ⇒ Object (readonly)
Returns the value of attribute db_name.
441 |
# File 'lib/td/client/model.rb', line 441 attr_reader :job_id, :type, :result_url |
#duration ⇒ Object (readonly)
Returns the value of attribute duration.
441 |
# File 'lib/td/client/model.rb', line 441 attr_reader :job_id, :type, :result_url |
#job_id ⇒ Object (readonly)
441 442 443 |
# File 'lib/td/client/model.rb', line 441 def job_id @job_id end |
#num_records ⇒ Object (readonly)
Returns the value of attribute num_records.
441 |
# File 'lib/td/client/model.rb', line 441 attr_reader :job_id, :type, :result_url |
#org_name ⇒ Object (readonly)
Returns the value of attribute org_name.
441 |
# File 'lib/td/client/model.rb', line 441 attr_reader :job_id, :type, :result_url |
#priority ⇒ Object (readonly)
Returns the value of attribute priority.
441 |
# File 'lib/td/client/model.rb', line 441 attr_reader :job_id, :type, :result_url |
#result_url ⇒ Object (readonly)
Returns the value of attribute result_url.
441 |
# File 'lib/td/client/model.rb', line 441 attr_reader :job_id, :type, :result_url |
#retry_limit ⇒ Object (readonly)
Returns the value of attribute retry_limit.
441 |
# File 'lib/td/client/model.rb', line 441 attr_reader :job_id, :type, :result_url |
#type ⇒ Object (readonly)
441 |
# File 'lib/td/client/model.rb', line 441 attr_reader :job_id, :type, :result_url |
Instance Method Details
#auto_update_status=(bool) ⇒ Object
set whether it update status if the job is not finished yet or not
451 452 453 |
# File 'lib/td/client/model.rb', line 451 def auto_update_status=(bool) @auto_update_status = bool ? true : false end |
#auto_update_status? ⇒ Boolean
whether it update status if the job is not finished yet or not
446 447 448 |
# File 'lib/td/client/model.rb', line 446 def auto_update_status? @auto_update_status end |
#cpu_time ⇒ String
528 529 530 531 |
# File 'lib/td/client/model.rb', line 528 def cpu_time update_status! unless @cpu_time || !@auto_update_status || finished? @cpu_time end |
#debug ⇒ Boolean
510 511 512 513 |
# File 'lib/td/client/model.rb', line 510 def debug update_status! unless @debug || !@auto_update_status || finished? @debug end |
#end_at ⇒ Time?
522 523 524 525 |
# File 'lib/td/client/model.rb', line 522 def end_at update_status! unless @end_at || !@auto_update_status || finished? @end_at && !@end_at.empty? ? Time.parse(@end_at) : nil end |
#error? ⇒ Boolean
603 604 605 606 |
# File 'lib/td/client/model.rb', line 603 def error? update_progress! unless @status @status == STATUS_ERROR end |
#finished? ⇒ Boolean
591 592 593 594 |
# File 'lib/td/client/model.rb', line 591 def finished? update_progress! unless @status FINISHED_STATUS.include?(@status) end |
#hive_result_schema ⇒ Array
534 535 536 537 |
# File 'lib/td/client/model.rb', line 534 def hive_result_schema update_status! unless @hive_result_schema.instance_of?(Array) || !@auto_update_status || finished? @hive_result_schema end |
#kill! ⇒ Object
487 488 489 |
# File 'lib/td/client/model.rb', line 487 def kill! # TODO end |
#killed? ⇒ Boolean
609 610 611 612 |
# File 'lib/td/client/model.rb', line 609 def killed? update_progress! unless @status @status == STATUS_KILLED end |
#query ⇒ String
492 493 494 495 |
# File 'lib/td/client/model.rb', line 492 def query update_status! unless @query || !@auto_update_status || finished? @query end |
#queued? ⇒ Boolean
615 616 617 618 |
# File 'lib/td/client/model.rb', line 615 def queued? update_progress! unless @status @status == STATUS_QUEUED end |
#result ⇒ Array
546 547 548 549 550 551 552 |
# File 'lib/td/client/model.rb', line 546 def result unless @result return nil unless finished? @result = @client.job_result(@job_id) end @result end |
#result_each {|result| ... } ⇒ nil
581 582 583 584 585 586 587 588 |
# File 'lib/td/client/model.rb', line 581 def result_each(&block) if @result @result.each(&block) else @client.job_result_each(@job_id, &block) end nil end |
#result_each_with_compr_size {|result| ... } ⇒ nil
570 571 572 573 574 575 576 577 |
# File 'lib/td/client/model.rb', line 570 def result_each_with_compr_size(&block) if @result @result.each(&block) else @client.job_result_each_with_compr_size(@job_id, &block) end nil end |
#result_format(format, io = nil, &block) ⇒ nil, String
558 559 560 561 |
# File 'lib/td/client/model.rb', line 558 def result_format(format, io=nil, &block) return nil unless finished? @client.job_result_format(@job_id, format, io, &block) end |
#result_raw(format, io = nil, &block) ⇒ Object
563 564 565 566 |
# File 'lib/td/client/model.rb', line 563 def result_raw(format, io=nil, &block) return nil unless finished? @client.job_result_raw(@job_id, format, io, &block) end |
#result_size ⇒ String
540 541 542 543 |
# File 'lib/td/client/model.rb', line 540 def result_size update_status! unless @result_size || !@auto_update_status || finished? @result_size end |
#running? ⇒ Boolean
621 622 623 624 |
# File 'lib/td/client/model.rb', line 621 def running? update_progress! unless @status @status == STATUS_RUNNING end |
#start_at ⇒ Time?
516 517 518 519 |
# File 'lib/td/client/model.rb', line 516 def start_at update_status! unless @start_at || !@auto_update_status || finished? @start_at && !@start_at.empty? ? Time.parse(@start_at) : nil end |
#status ⇒ String
498 499 500 501 |
# File 'lib/td/client/model.rb', line 498 def status update_status! unless @status || !@auto_update_status || finished? @status end |
#success? ⇒ Boolean
597 598 599 600 |
# File 'lib/td/client/model.rb', line 597 def success? update_progress! unless @status @status == STATUS_SUCCESS end |
#update_progress! ⇒ Object
626 627 628 |
# File 'lib/td/client/model.rb', line 626 def update_progress! @status = @client.job_status(@job_id) end |
#update_status! ⇒ Object
630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 |
# File 'lib/td/client/model.rb', line 630 def update_status! type, query, status, url, debug, start_at, end_at, cpu_time, result_size, result_url, hive_result_schema, priority, retry_limit, org_name, db_name , duration, num_records = @client.api.show_job(@job_id) @query = query @status = status @url = url @debug = debug @start_at = start_at @end_at = end_at @cpu_time = cpu_time @result_size = result_size @result_url = result_url @hive_result_schema = hive_result_schema @priority = priority @retry_limit = retry_limit @db_name = db_name @duration = duration @num_records = num_records self end |
#url ⇒ String
504 505 506 507 |
# File 'lib/td/client/model.rb', line 504 def url update_status! unless @url || !@auto_update_status || finished? @url end |
#wait(*args) ⇒ Object
459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 |
# File 'lib/td/client/model.rb', line 459 def wait(*args) opthash = Hash.try_convert(args.last) if opthash args.pop detail = opthash.fetch(:detail, false) verbose = opthash.fetch(:verbose, ENV['TD_CLIENT_DEBUG']) end timeout = args[0] wait_interval = args[1] || 2 deadline = monotonic_clock + timeout if timeout timeout_klass = Class.new(Exception) begin if timeout if deadline <= monotonic_clock raise timeout_klass, "timeout (#{timeout}) exceeded wait_interval=#{wait_interval}" end end sleep wait_interval detail ? update_status! : update_progress! yield self if block_given? rescue timeout_klass raise Timeout::Error, $!. rescue Errno::ECONNREFUSED, Errno::ECONNRESET, Timeout::Error, EOFError, SystemCallError, OpenSSL::SSL::SSLError, SocketError, HTTPClient::TimeoutError $stderr.puts "ignore network error (#{$!}); retry..." if verbose end until finished? end |