種類
- インスタンスメソッド (30)
- クラス (22)
- モジュール関数 (19)
- 特異メソッド (15)
- 文書 (11)
ライブラリ
- ビルトイン (11)
-
net
/ smtp (22) -
net
/ telnet (12) - timeout (41)
クラス
-
Net
:: SMTP (22) -
Net
:: Telnet (12) - Thread (11)
モジュール
- Timeout (19)
キーワード
-
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (11) - Error (11)
- TimeoutError (11)
- cmd (4)
-
handle
_ interrupt (11) - new (4)
-
open
_ timeout (11) -
read
_ timeout (11) - waitfor (4)
検索結果
先頭5件
-
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (35268.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...c 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはい......ウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t = 5
min = [ 0, 0]
begin
Timeout.timeout(t){
calc_pi(min)
}
rescue Timeout::Error
puts "timeout"
end
printf "%......がかかっている) が終了した直後((A)の箇所)で TimeoutError 例外があがっています。
例 timeout が割り込めない
require 'timeout'
require 'socket'
t = 0.1
start = Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")... -
Timeout
. # timeout(sec , exception _ class , message) {|i| . . . } -> object (35268.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...c 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはい......ウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t = 5
min = [ 0, 0]
begin
Timeout.timeout(t){
calc_pi(min)
}
rescue Timeout::Error
puts "timeout"
end
printf "%......がかかっている) が終了した直後((A)の箇所)で TimeoutError 例外があがっています。
例 timeout が割り込めない
require 'timeout'
require 'socket'
t = 0.1
start = Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")... -
Timeout
. # timeout(sec , exception _ class = nil) {|i| . . . } -> object (35267.0) -
ブロックを sec 秒の期限付きで実行します。 ブロックの実行時間が制限を過ぎたときは例外 Timeout::Error が発生します。
...c 秒の期限付きで実行します。
ブロックの実行時間が制限を過ぎたときは例外
Timeout::Error が発生します。
exception_class を指定した場合には Timeout::Error の代わりに
その例外が発生します。
ブロックパラメータ i は sec がはい......ウト
require 'timeout'
def calc_pi(min)
loop do
x = rand
y = rand
x**2 + y**2 < 1.0 ? min[0] += 1 : min[1] += 1
end
end
t = 5
min = [ 0, 0]
begin
Timeout.timeout(t){
calc_pi(min)
}
rescue Timeout::Error
puts "timeout"
end
printf "%......がかかっている) が終了した直後((A)の箇所)で TimeoutError 例外があがっています。
例 timeout が割り込めない
require 'timeout'
require 'socket'
t = 0.1
start = Time.now
begin
Timeout.timeout(t) {
p TCPSocket.gethostbyname("www.ruby-lang.org")... -
TimeoutError (20016.0)
-
Alias of Timeout::Error
...Alias of Timeout::Error... -
Timeout
:: Error (11080.0) -
timeout で定義される例外クラスです。 関数 timeout がタイムアウトすると発生します。
...timeout で定義される例外クラスです。
関数 timeout がタイムアウトすると発生します。
timeout を使うライブラリを作成する場合は、ユーザが指定した
timeout を捕捉しないようにライブラリ内で TimeoutError のサブクラスを
定義......uire 'timeout.rb'
class Foo
FooTimeoutError = Class.new(TimeoutError)
def longlongtime_method
Timeout.timeout(100, FooTimeoutError) {
...
}
end
end
==> main.rb <==
require 'foo'
timeout(5) {... -
Net
:: SMTP # open _ timeout -> Integer (6113.0) -
接続時に待つ最大秒数を返します。
...接続時に待つ最大秒数を返します。
デフォルトは30(秒)です。
この秒数たってもコネクションが
開かなければ例外 TimeoutError を発生します。
@see Net::SMTP#open_timeout=... -
Net
:: SMTP # read _ timeout -> Integer (6113.0) -
読みこみ (read(2) 一回) でブロックしてよい最大秒数を返します。
...読みこみ (read(2) 一回) でブロックしてよい最大秒数を返します。
デフォルトは60(秒)です。
この秒数たっても読みこめなければ例外 TimeoutError を発生します。
@see Net::SMTP#read_timeout=... -
Thread
. handle _ interrupt(hash) { . . . } -> object (84.0) -
スレッドの割り込みのタイミングを引数で指定した内容に変更してブロックを 実行します。
...ができます。
==== TimeoutError 対策
例:TimeoutError 発生のタイミングを制御する例
require 'timeout'
Thread.handle_interrupt(TimeoutError => :never) {
timeout(10){
# TimeoutError => :never の指定により、ここでは TimeoutError が発生しない。.......handle_interrupt(TimeoutError => :on_blocking) {
# :on_blocking な処理は TimeoutError が発生し得る。
}
# TimeoutError => :never の指定により、ここでは TimeoutError が発生しない。
}
}
この例を ensure 節での TimeoutError 発生に応用......する事でリソースリー
クに備える事ができます。Timeout.#timeout はスレッドを使って実装さ
れているため、Thread.handle_interrupt による制御が有効です。
==== Stack control settings
It's possible to stack multiple levels of ::handle_interrupt blocks in... -
1
. 6 . 8から1 . 8 . 0への変更点(まとめ) (72.0) -
1.6.8から1.8.0への変更点(まとめ) * ((<1.6.8から1.8.0への変更点(まとめ)/インタプリタの変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたクラス/モジュール>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加されたメソッド>)) * ((<1.6.8から1.8.0への変更点(まとめ)/追加された定数>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張されたクラス/メソッド(互換性のある変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/変更されたクラス/メソッド(互換性のない変更)>)) * ((<1.6.8から1.8.0への変更点(まとめ)/文法の変更>)) * ((<1.6.8から1.8.0への変更点(まとめ)/正規表現>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Marshal>)) * ((<1.6.8から1.8.0への変更点(まとめ)/Windows 対応>)) * ((<1.6.8から1.8.0への変更点(まとめ)/廃止された(される予定の)機能>)) * ((<1.6.8から1.8.0への変更点(まとめ)/ライブラリ>)) * ((<1.6.8から1.8.0への変更点(まとめ)/拡張ライブラリAPI>)) * ((<1.6.8から1.8.0への変更点(まとめ)/バグ修正>)) * ((<1.6.8から1.8.0への変更点(まとめ)/サポートプラットフォームの追加>))
...)
: ((<Timeout/Timeout.timeout>)) [lib] [new]
: ((<Timeout::Error|Timeout/Error>)) [lib] [new]
timeout に Timeout モジュールが定義されました。((<RCR#121>))
関数 ((<timeout/timeout>)) は、モジュール関数 Timeout.timeout の別名に、
例外 ((<TimeoutError>)) は... -
Net
:: Telnet . new(opts) -> Net :: Telnet (24.0) -
Telnet オブジェクトを生成します。
...れぞれ右に示すデフォルト値が適用されます。
"Host" => "localhost"
"Port" => 23
"Prompt" => /[$%#>] \z/n
"Timeout" => 10 # 接続待ちタイムアウト値(sec)
"Waittime" => 0 # Prompt を待ち合わせる時間。この値を nil にしてはい......さい。この
値は Net::Telnet#telnetmode でも指定できます。
"Timeout" 接続時やホストからのデータの読み込みを待つときに、
ここで指定した秒数でタイムアウト(TimeoutErrorが発生)します
(Net::Telnet#login、Net::Telnet#waitfor、Net::Telnet#cm......falseを指定することでタイムアウトが無効になります。その場合には
接続できない場合には connect(2) で Errno::ETIMEOUT が出て
止まります(通常数分待つことになりますが)が、
それ以外の点ではホストからデータが来ないといつ... -
Net
:: Telnet . new(opts) {|message| . . . } -> Net :: Telnet (24.0) -
Telnet オブジェクトを生成します。
...れぞれ右に示すデフォルト値が適用されます。
"Host" => "localhost"
"Port" => 23
"Prompt" => /[$%#>] \z/n
"Timeout" => 10 # 接続待ちタイムアウト値(sec)
"Waittime" => 0 # Prompt を待ち合わせる時間。この値を nil にしてはい......さい。この
値は Net::Telnet#telnetmode でも指定できます。
"Timeout" 接続時やホストからのデータの読み込みを待つときに、
ここで指定した秒数でタイムアウト(TimeoutErrorが発生)します
(Net::Telnet#login、Net::Telnet#waitfor、Net::Telnet#cm......falseを指定することでタイムアウトが無効になります。その場合には
接続できない場合には connect(2) で Errno::ETIMEOUT が出て
止まります(通常数分待つことになりますが)が、
それ以外の点ではホストからデータが来ないといつ... -
Net
:: Telnet # waitfor(opt) -> String|nil (18.0) -
指定した正規表現にマッチする文字列がホストから来るまでデータを読み込みます。
...。"Match"も"Prompt"も指定されなかった
場合にのみ利用されます。
"Timeout" タイムアウトの秒数を指定します。指定しない場合は Net::Telnet.new で
指定した"Timeout"の値をデフォルト値として利用します。
"Waittime" 指定した正規表......わせに必要な情報を指定します。正規表現を指定するとそれにマッチするデータまで待ち、ハッシュを指定すると正規表現とオプションを指定できます。
@raise TimeoutError タイムアウトした場合に発生します
@see Net::Telnet.new... -
Net
:: Telnet # waitfor(opt) {|buf| . . . } -> String|nil (18.0) -
指定した正規表現にマッチする文字列がホストから来るまでデータを読み込みます。
...。"Match"も"Prompt"も指定されなかった
場合にのみ利用されます。
"Timeout" タイムアウトの秒数を指定します。指定しない場合は Net::Telnet.new で
指定した"Timeout"の値をデフォルト値として利用します。
"Waittime" 指定した正規表......わせに必要な情報を指定します。正規表現を指定するとそれにマッチするデータまで待ち、ハッシュを指定すると正規表現とオプションを指定できます。
@raise TimeoutError タイムアウトした場合に発生します
@see Net::Telnet.new... -
Net
:: Telnet # cmd(opts) -> String (12.0) -
コマンドをホストに送ります。
...を指定する正規表現を
指定します。デフォルトは Net::Telnet.new で "Prompt" で指定した
正規表現となります。
"Timeout" タイムアウトまでの時間です。デフォルトは Net::Telnet.new で
指定した値となります。
コマンド文字列には......改行が付加されてホストに送られます。
@param opts ホストに送るコマンドを文字列で指定します。もしくは送る文字列とオプションをハッシュで指定します。
@raise TimeoutError タイムアウトしたときに発生します。... -
Net
:: Telnet # cmd(opts) {|mesg| . . . } -> String (12.0) -
コマンドをホストに送ります。
...を指定する正規表現を
指定します。デフォルトは Net::Telnet.new で "Prompt" で指定した
正規表現となります。
"Timeout" タイムアウトまでの時間です。デフォルトは Net::Telnet.new で
指定した値となります。
コマンド文字列には......改行が付加されてホストに送られます。
@param opts ホストに送るコマンドを文字列で指定します。もしくは送る文字列とオプションをハッシュで指定します。
@raise TimeoutError タイムアウトしたときに発生します。...