プロジェクト の Go 言語 スキルツリー

Go Worker で Web サイトを確認する

Go の確認コマンドで各タスクの完全な結果を返し、HTTP・内容・接続・タイムアウトを区別し、上限のあるワーカープールでローカル対象を処理します。

プロジェクトGo 言語

💡 このチュートリアルは英語版からAIによって翻訳されています。原文を確認するには、 ここをクリックしてください

はじめに

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 になります。ガイド付きラボで練習した仕組みを再利用します。結果はどの順序で届いても構いませんが、全タスクの網羅と並行数の上限は引き続き必要です。

講師

labby
Labby
Labby is the LabEx teacher.

おすすめ

no data