Go Worker で Web サイトを確認するは、並行処理の調整に取り組む Go 学習者向けの実践プロジェクトです。イベント主催者のために、開場前に用意されたローカル Web サイトの入口を確認します。実際の HTTP リクエストを送り、割り当てられた各タスクについて正確な JSON 結果を 1 件ずつ保存する、再利用可能なコマンドを作ります。同じ URL を共有する別タスクも個別に扱います。
2 つのガイド付きラボでは、まず単一対象の完全なチェック処理を作り、次に小さなワーカープールでタスクを分担します。1 つの独立したチャレンジでは、ワーカー数の上限を 3 にして別のイベント経路を確認します。各単元には独立した環境とデータが用意されます。所要時間は約 155 分で、読解と通常の修正を含む著者の見積もりです。
学習内容
このコースを修了すると、次のことができるようになります。
- 各タスクの ID と元の URL を保持し、別のタスクが失敗しても結果を必ず 1 件だけ生成する。
- HTTP 拒否、想定外の内容、接続エラー、タイムアウトを区別し、レスポンスボディの読み取り中の失敗も扱う。
- HTTP リクエストに有限のクライアントタイムアウトを設定し、受信したレスポンスボディを閉じる。
- goroutine と channel でタスクを分配し、channel を閉じる責任を説明し、
sync.WaitGroupでワーカーの終了を待つ。 - 共有コレクションへの並行書き込みを避けて結果を集め、ワーカー上限内で実際に重なるリクエストを観察する。
- 完全な JSON レポートを保存して読み、異なる終了順序を許容し、空入力やワーカーより少ないタスクも処理する。
このコースの対象者
このコースは、学習済みの関数とデータ構造を、役立つ並行コマンドラインツールに組み合わせたい Go 学習者を対象としています。
前提知識: 基本的なターミナル操作、Go の関数、構造体、スライス、モジュール、基本的な channel 構文、および遺失物 API を構築するまたは同等の HTTP 経験。goroutine、channel の終了責任、sync.WaitGroup、クライアントタイムアウト、レスポンスボディの解放は使用前に説明します。
学習環境: LabEx が Go、開始コード、制御されたローカル HTTP 対象、ブラウザ上の WebIDE を提供します。Workspace ターミナルでチェック処理を実行し、JSON レポートを読めるため、ローカルに Go をインストールする必要はありません。コマンド、対象の内容、プログラム出力は英語のままです。
よくある質問
公開 Web サイトをスキャンしますか?
遅延が有限の、用意されたローカル対象のみを確認します。これは一度きりのチェックツールです。継続的な監視、アラート、任意のインターネット条件に対する保証は範囲外です。
1 つの対象が失敗すると、ほかの確認も止まりますか?
各入力タスクには、それぞれの結果が必要です。サーバーの HTTP 拒否と接続エラーは異なります。設定したタイムアウトに達すると、クライアントは遅い応答を待つのをやめます。対象サーバーの処理は、その後に完了する場合があります。応答を受信した場合は、その HTTP ステータスをレポートに保持します。
チャレンジでは何が変わりますか?
タスク ID、URL、期待する内容が変わり、ワーカー上限が 3 になります。ガイド付きラボで練習した仕組みを再利用します。結果はどの順序で届いても構いませんが、全タスクの網羅と並行数の上限は引き続き必要です。

