ドキュメント
よくある質問
タスクジョブとは?
タスクはジョブのシーケンスです。各ジョブは基本的にはタスクコマンドをジョブのインプット引数に追加することによってクラウドタスクが生成するシェルコマンドだけです。 例えば、次のクラウドタスクを考慮します。
seq 3 | cloudtask echo
スクエア 3 1から3までの数字の列をプリントアウトします。各行はクラウドタスクが付加する別の行です。 イーチョ コマンドは3つのコマンドを作成する:
echo 1 echo 2 echo 3
各ジョブコマンドは独立していなければなりません。つまり、特定のワーカーで前後に実行される他のジョブコマンドに依存しないはずです。 ジョブコマンドの実行順と配布は、クラウドタスクまでです。 複数のワーカー(例えば、--split=3)の中でタスクが分割されると、各ジョブコマンドは異なるサーバーで実行される可能性があります。
ジョブコマンドは、ユーザのインタラクションを必要としない場合があります。 Cloudtask はジョブコマンドとやり取りできないため、ユーザインタラクション(確認ダイアログなど)で任意の試みは、設定されたジョブ --timeout の経過までジョブをハングすることができます(1 時間) デフォルト)。
作業者を仕事に準備するにはどうすればよいですか?
新しく TurnKey Core 展開をインストールして、ジョブコマンドが依存するすべてのソフトウェア(パッケージ、カスタムスクリプトなど)をテストします。これはマスターワーカーです。
マスターをバックアップする 名称: TKLBAM, バックアップIDをクラウドタスクに渡して、起動するワーカーでこのバックアップを復元できるようにします。
--preコマンド(パッケージをインストールするために、--preコマンドをTKLBAM復元を置き換えたり、--overlayをワーカーのファイルシステムに適用したりすることができます。
必要な入力データでジョブコマンドを提供する方法は?
入力データの少額は、TKLBAMバックアップに保存するか、オーバーレイのワーカーに転送することができます。
大量の入力データに対して、ネットワーク上のデータを(ファイルサーバやAmazon S3)に引き込むことを推奨します。
ジョブコマンドの有用なエンド製品を保存する場所は?
ジョブは、ネットワーク上の外部ストレージリソースにファイルなどの有用なエンド製品をリスを離すべきです。
作業者のハードディスクのストレージスペースは、作業者のタスクの最後に自動起動したワーカーが破壊されると、作業者のコンテンツとともに一時的であると考えるべきです。 一時的な記憶空間。
例えば、ジョブがローカルファイルシステムにファイルを作成すると、ワーカーがファイルサーバにネットワーク上にアップロードされていれば、ワーカーが破壊されたときに失われるだろう。 Amazon S3 など
ジョブから出力されるコンソール(例、プリントステートメント)は、Cloudtask によって自動的に記録されます。
ジョブが失敗した場合、どうなりますか?
ジョブコマンドがゼロの終了コードを返すと、ジョブが失敗したとみなされます。失敗したジョブは取得されません。 それらは単にログオンされ、セッションの最後に報告されたジョブの失敗の合計数です。 ワーカーは、次のジョブを実行し続けます。
労働者間で同等に分けられた仕事はありますか?
必ずしもそうではありません。 ワーカーは、ジョブのキューからジョブコマンドを最初に最初に最初に最初に最初に提供した状態で引きます。 ワーカーは、前のジョブで終了したら、キューから次のジョブをつかみます。 より短いジョブを受け取った高速ワーカーまたはワーカーは、遅いワーカーや、より長いジョブを受信したワーカーよりも多くのジョブを実行できます。
クラウドタスクは、労働者に認証する方法は?
Cloudtask は、SSH 上でリモートサーバにログをログアウトします。 これは、SSHキー認証(SSHキーがワーカーの認証鍵に追加されているなど)を使用してパスワードなしでこれを行うことができます。 パスワード認証はサポートしておりません。
ユーザープロファイルセクションでは、 Hub では、起動したクラウドサーバーの認証キーに追加される 1 つ以上の SSH 公開キーを設定できます。
そのため、クラウドタスクを実行しているリモートサーバにプライベートSSHキーを置く必要がありますか?
つまり、それをする一つの方法です。 もう一つ、より安全な代替手段は、SSHエージェントの転送を使用してリモートサーバーにログインします。
ssh -A remote-server
ローカルSSHエージェントを転送すると、SSHキーをリモートサーバーで認証し、パソコンのセキュリティを離れることなく、リモートサーバーを安全に管理できます。
ワーカーが失敗した場合はどうなりますか?
クラウドタスクは、単一のワーカーの信頼性に依存しません。 作業者が仕事をしている間に失敗した場合、残りのワーカーの1つにジョブが再ルートされます。
クラウドタスクがSSH上でコマンドを実行できないと判断した場合、ワーカーは失敗したと見なされます(つまり、クラウドタスクpingsの作業員は定期的に)。
作業者が到達不能、ソフトウェアの問題(例えば、カーネルパニック)、またはそのような重要なパフォーマンスの問題を作るネットワークルーティングの問題のために、これが問題ではありません メモリから実行されるワーカーとして、SSH 上でコマンドを受け入れることができないスワップにそれほど悪くないほどのクラッシュ.
通常のCloudtaskは起動する労働者の破壊に責任を負います。失敗したワーカーはすぐに破壊されます。
作業員を立ち上げるためにハブを使用する必要がありますか?
それだけで、最も簡単な方法ではありません。 Cloudtaskは、--workersオプションを介してワーカーIPアドレスの任意のリストを受け入れることができます。
事前にスケジュールした労働者を自動起動した労働者と混合できますか?
あり。 --workersオプションで提供される事前実行されたワーカーの数よりも--splitが大きい場合、Cloudtaskは設定された従業員に満足させるために追加のワーカーを起動します 分割.
例えば、5つのプレランスワーカーIPアドレスのリストを提供し、15のタスク分割を指定すると、Cloudtaskは自動的に10人のワーカーが起動します。
労働者が自動的に破壊されるとき?
クラウドサーバ利用料を最小限に抑えるために、クラウドタスクは、作業を中断した直後に起動するワーカーを破壊します。
しかし、Cloudtaskは、自動起動する労働者の破壊にのみ責任を負います。 また、クラウドタスクのコマンドを使ってワーカーを起動し、--workersオプションを使ってクラウドタスクに渡すこともできます。 作業者の破壊(例えば、クラウドタスクの破壊者コマンドを使用して)の責任を負う場合。
タスクを占有する方法
タスクを安全にいつでも安全に処理できます。
- クラウドタスクが実行するコンソールでCTRL-Cを押します。
- キルを使用してTERM信号をクラウドタスクセッションのpidに送信します。
タスクを飽きさせるとどうなりますか?
現在実行中のジョブの実行は即座に中止されます。クラウドタスクが自動起動したワーカーインスタンスは、可能な限り速やかに破棄されます。
後から再開されるように、タスクの現在の状態はタスクセッションに保存されます。 状態は、ジョブが実行を終了し、ジョブが保留状態にあるかを説明します。
タスクが中絶されたジョブを再開すると、他のジョブと一緒に再実行されます。
タスクを強制的に中断することは、数秒から数分に数秒でどこからでも取り込むことができるため、タスクを安全にシャットダウンすることができます。 例えば、保留状態のEC2インスタンスは破壊できないため、クラウドタスクは実行状態を最初に到達するために待つ必要があります。