class

ServiceStatus::HttpFeedClient

Inherits ServiceStatus::FeedClient < Reference < Object

HTTP で取る実装。

応答待ちは別のファイバで行い、fetch は待たずに戻る。 poll_new は主ループの中で呼ばれるため、そこで 5 秒待つとトレイも設定画面も止まる。 更新の確認(update)が別のファイバで待つのと同じ理由である。

Constants

CONNECT_TIMEOUT = 5.seconds

常駐アプリの片手間の確認であり、待たされてまで通す価値は無い。

Log = ::Log.for("service_status")
MAX_BODY_SIZE = 1024 * 1024

受け取る本文の上限。実物は数 KB である。 配信経路がエラーページを返しても、それを丸ごと読み込まないための保険である。

READ_TIMEOUT = 5.seconds

Constructors

new(user_agent : String)
Source

Instance methods

fetch(url : String) : Response

url の配信を取りに行く。ブロックしない実装は、取れるまで Pending を返し続ける。

Source
inflight?

取りに行っている最中か。重ねて取りに行かないために持つ。

Source
reset

取りかけのものと控えを捨てる。ソースを開始し直すときに呼ぶ。

Source