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
-
#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
- #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) ⇒ 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(timeout = nil, wait_interval = 2) ⇒ 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) ⇒ Job
Returns a new instance of Job.
405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 |
# File 'lib/td/client/model.rb', line 405 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) 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 end |
Instance Attribute Details
#db_name ⇒ Object (readonly)
Returns the value of attribute db_name.
436 |
# File 'lib/td/client/model.rb', line 436 attr_reader :job_id, :type, :result_url |
#duration ⇒ Object (readonly)
Returns the value of attribute duration.
436 |
# File 'lib/td/client/model.rb', line 436 attr_reader :job_id, :type, :result_url |
#job_id ⇒ Object (readonly)
436 437 438 |
# File 'lib/td/client/model.rb', line 436 def job_id @job_id end |
#org_name ⇒ Object (readonly)
Returns the value of attribute org_name.
436 |
# File 'lib/td/client/model.rb', line 436 attr_reader :job_id, :type, :result_url |
#priority ⇒ Object (readonly)
Returns the value of attribute priority.
436 |
# File 'lib/td/client/model.rb', line 436 attr_reader :job_id, :type, :result_url |
#result_url ⇒ Object (readonly)
Returns the value of attribute result_url.
436 |
# File 'lib/td/client/model.rb', line 436 attr_reader :job_id, :type, :result_url |
#retry_limit ⇒ Object (readonly)
Returns the value of attribute retry_limit.
436 |
# File 'lib/td/client/model.rb', line 436 attr_reader :job_id, :type, :result_url |
#type ⇒ Object (readonly)
436 |
# File 'lib/td/client/model.rb', line 436 attr_reader :job_id, :type, :result_url |
Instance Method Details
#cpu_time ⇒ String
502 503 504 505 |
# File 'lib/td/client/model.rb', line 502 def cpu_time update_status! unless @cpu_time || finished? @cpu_time end |
#debug ⇒ Boolean
484 485 486 487 |
# File 'lib/td/client/model.rb', line 484 def debug update_status! unless @debug || finished? @debug end |
#end_at ⇒ Time?
496 497 498 499 |
# File 'lib/td/client/model.rb', line 496 def end_at update_status! unless @end_at || finished? @end_at && !@end_at.empty? ? Time.parse(@end_at) : nil end |
#error? ⇒ Boolean
577 578 579 580 |
# File 'lib/td/client/model.rb', line 577 def error? update_progress! unless @status @status == STATUS_ERROR end |
#finished? ⇒ Boolean
565 566 567 568 |
# File 'lib/td/client/model.rb', line 565 def finished? update_progress! unless @status FINISHED_STATUS.include?(@status) end |
#hive_result_schema ⇒ Array
508 509 510 511 |
# File 'lib/td/client/model.rb', line 508 def hive_result_schema update_status! unless @hive_result_schema.instance_of? Array || finished? @hive_result_schema end |
#kill! ⇒ Object
461 462 463 |
# File 'lib/td/client/model.rb', line 461 def kill! # TODO end |
#killed? ⇒ Boolean
583 584 585 586 |
# File 'lib/td/client/model.rb', line 583 def killed? update_progress! unless @status @status == STATUS_KILLED end |
#query ⇒ String
466 467 468 469 |
# File 'lib/td/client/model.rb', line 466 def query update_status! unless @query || finished? @query end |
#queued? ⇒ Boolean
589 590 591 592 |
# File 'lib/td/client/model.rb', line 589 def queued? update_progress! unless @status @status == STATUS_QUEUED end |
#result ⇒ Array
520 521 522 523 524 525 526 |
# File 'lib/td/client/model.rb', line 520 def result unless @result return nil unless finished? @result = @client.job_result(@job_id) end @result end |
#result_each {|result| ... } ⇒ nil
555 556 557 558 559 560 561 562 |
# File 'lib/td/client/model.rb', line 555 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
544 545 546 547 548 549 550 551 |
# File 'lib/td/client/model.rb', line 544 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
532 533 534 535 |
# File 'lib/td/client/model.rb', line 532 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
537 538 539 540 |
# File 'lib/td/client/model.rb', line 537 def result_raw(format, io=nil, &block) return nil unless finished? @client.job_result_raw(@job_id, format, io, &block) end |
#result_size ⇒ String
514 515 516 517 |
# File 'lib/td/client/model.rb', line 514 def result_size update_status! unless @result_size || finished? @result_size end |
#running? ⇒ Boolean
595 596 597 598 |
# File 'lib/td/client/model.rb', line 595 def running? update_progress! unless @status @status == STATUS_RUNNING end |
#start_at ⇒ Time?
490 491 492 493 |
# File 'lib/td/client/model.rb', line 490 def start_at update_status! unless @start_at || finished? @start_at && !@start_at.empty? ? Time.parse(@start_at) : nil end |
#status ⇒ String
472 473 474 475 |
# File 'lib/td/client/model.rb', line 472 def status update_status! unless @status || finished? @status end |
#success? ⇒ Boolean
571 572 573 574 |
# File 'lib/td/client/model.rb', line 571 def success? update_progress! unless @status @status == STATUS_SUCCESS end |
#update_progress! ⇒ Object
600 601 602 |
# File 'lib/td/client/model.rb', line 600 def update_progress! @status = @client.job_status(@job_id) end |
#update_status! ⇒ Object
604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 |
# File 'lib/td/client/model.rb', line 604 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 = @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 self end |
#url ⇒ String
478 479 480 481 |
# File 'lib/td/client/model.rb', line 478 def url update_status! unless @url || finished? @url end |
#wait(timeout = nil, wait_interval = 2) ⇒ Object
440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 |
# File 'lib/td/client/model.rb', line 440 def wait(timeout=nil, wait_interval=2) # this should use monotonic clock but td-client-ruby supports Ruby 1.8.7 now. # therefore add workaround to initializing clock on each delta if timeout orig_timeout = timeout t1 = Time.now.to_f end until finished? if timeout t = Time.now.to_f d = t - t1 t1 = t timeout -= d if d > 0 raise Timeout::Error, "timeout=#{orig_timeout} wait_interval=#{wait_interval}" if timeout <= 0 end sleep wait_interval yield self if block_given? update_progress! end end |