CreditEaseマイクロタスクスケジューリングサービスプラットフォームの構築の練習|シェアを記録

コンテンツソース:テクノロジー4サロンの一新技術研究所 - オンライン生きる| CreditEaseマイクロタスクスケジューリングサービスプラットフォームの構築の実践

スピーカー:開発プラットフォーム&梁新担当CreditEaseシニアアーキテクト

はじめに:今日、それはインターネットアプリケーションやエンタープライズアプリケーションであるかどうかをバッチジョブの膨大な数は、多くの場合、私たちが問題を解決するためにいくつかのスケジューリングシステムを必要としています。マイクロサービスアーキテクチャの漸進的な進化によって、徐々に分散アーキテクチャモノマー、マイクロサービスアーキテクチャへと進化。

この文脈では、プラットフォームをスケジュールする前に、作業の多くは、ビジネス・システムのニーズを満たすことができないので、いくつかの分散タスクベースの管理プラットフォームがあります。これらのプラットフォームは、独自の特性を持っているだけでなく、高いサービスと相まって、このようなタスクスケジューリングをサポートしていないとして、自分の欠点、でクロスプラットフォームやその他の問題をサポートしていない、(ので、我々はマイクロタスクスケジューリングサービスプラットフォームを開発し、企業のニーズと非常に一貫性がありませんSIA-TASK)。主なシェアはビジネス面をサポートするために、どのようにR&Dの背景と技術アーキテクチャ設計のアイデアを含め、SIAプラットフォームを中心に展開、など。

、SIA-TASKを作製します 

1.1背景

かどうか、インターネットアプリケーション、エンタープライズアプリケーションは、多くの場合、私たちは問題を解決するためにいくつかのスケジューリングシステムを必要とするバッチジョブの多数で満たされています。マイクロサービスアーキテクチャの漸進的な進化によって、徐々に分散アーキテクチャモノマー、マイクロサービスアーキテクチャへと進化。

この文脈では、前のタスクのスケジューリングプラットフォームやコンポーネントの多くは、ビジネス・システムのニーズを満たすことができないので、いくつかの分散タスクベースの管理プラットフォームがあります。これらのプラットフォームは、独自の特性を持っているだけでなく、タスクのスケジューリングをサポートしていないなど、欠点を持っており、ビジネスの高いカップリングはそうでクロスプラットフォームをサポートしていません。

1.2種

私たちは三つのカテゴリーにバッチジョブに入れて、タスクと時間の関係、航空機の種類、タイプの地下鉄、バスの種類によります。

  • 航空機の種類は、実行する時に固定されている年/月/週/日あたりのミッションを指します。このタスクは一時前日からログをクリアするために実行されるバッチジョブを実行するために、毎日のように非常に、当社の業務システムでは一般的なものである。企業は、完全な賃金を与えるために、各月の10日には、これらは、航空機タイプのタスクです。
  • メトロ型は、一定の時間にすべてのミッション、同時ではないと言及します。私たちはしばしば、このようなバッチジョブが発生し、最初の作業は終わっていない、2番目のタスクを同時実行されていない、実行されません。
  • これは、タスクが複雑になることが一定時間でバスタイプを指します。それはバス型のタスクがある場合は、タスクが完了していない前に、次のタスクは、ポイントによって開始することができます。

1.3問題

CreditEaseマイクロタスクスケジューリングサービスプラットフォームの構築の練習|シェアを記録

あなたは、バッチタスクを実行するプロセスで、次のような問題が発生します。

  • タイミングタスクがまだ実行されていることを忘れ、忘れてください。そのような場合は、当社で発生していた、冬は数年前に、プロジェクトの運転期間の後、プロジェクトを行うために3ヶ月で私たちのプロジェクトチームの一つが、効果は非常に良いではないことが判明し、関連を置きます2年後まで実行し続け、このノードは、アラーム監視をトリガ、ディスクのログがいっぱいに生成するプログラムを停止しますが、バッチ・ジョブ・ノードを実行するのを忘れている、我々が見つかりました。
  • ホットスタンバイではない一点は、バッチタスクは動作のタイミングタスクシングルポイントで実行し、転写不良は、マニュアル処理が必要です。
  • 依存、時間差データ処理を使用することが繰り返し問題を引き起こす依存しています。私たちは皆、時にはプロジェクトの依存関係のために必要であることを知っています。このようなバッチプロセスの実行AとしてアイテムとBの実行が優先度のバッチプロセス、バッチプロセスチーム2:00実行時に実行するように設定が存在するケースでは、確実にするために、スキームB 4:00、時間を実行し、バッチを実行します実行バッチプロセスの実行時間が2時間以上長すぎる、それはデータに問題が発生します、我々は、手動でデータの問題を処理する必要があります。

1.4リレーションズ

前述のタスク間の関係は、それが最終的にどのような関係が存在するのでしょうか?私は、次の3つがあると思います。

  • シリアル、2つのタスクは関係を持っているがあります。、タスクAの実行後、タスクBの後、タスクAが最初に実行されるタスクBを実行します
  • パラレル、2つのタスクが同時に実行することができます。そのようなB及びCなどのタスクは、タスクAの後、実装タスクA、B及びCのタスクを同時に実行することができる、すなわち、BとCの並列関係の完了後に実行されるべきです。
  • 分岐は、先行タスクが決意の結果を返すによれば、異なる結果が異なる後続のタスクを実行します。タスクAを実行するとき、例えば0が戻り、戻ったときにケースの分岐である実行タスクB 1、。

1.5リフレクション

これらの関係のいくつかに基づいて、我々は、建設タスクスケジューリングプラットフォームの時に、次の2つの側面が考慮されます:

  • プラットフォーム。プロジェクトチームは、常に他のフレームワークにできるだけ多くの事業開発チームとは何の関係もないことを期待して事業の開発に多くのエネルギーを入れたいです。彼らは、タスクを実行するためのプラットフォームを持っているだけであることができ、このプラットフォームに優れたビジネスロジックを記述する必要があり、このプラットフォームは、すべての作業を行いますしたい、プロジェクトチーム唯一のビジネスロジックを気にする必要があります。
  • マイクロサービス。より良いプロジェクトのニーズを満たすために、我々は、発送エリアのビジネスロジックを手配することを望むとタスクはに対処するためのプロジェクトチームの業務に関連した部分のためのタスクスケジューリングプラットフォームを構築するために、登録と発見メカニズムを使用して、タスクから分離することができ、に対処するためのタスクにプラットフォームの他の部分。

1.6要因

上記の2点に加えて、我々はまた、以下の8つの要因を考慮する必要があります。

  • タスクのスケジューリング。複数のビジネス・プロセス間の定期的なタスクの順序があり、前述のタスク間の平行関係があり、枝の間の関係がシリアル関係があり、そして、我々は、これらのタスクとサポートを処理するために適切なプラットフォームオーケストレーションを持っていると思ってい。
  • タスクフラグメンテーション。大きなタスクの並行してフラグメント化します。
  • クロスプラットフォーム。Javaテクノロジ・スタック(SpringBoot、春、など)を使用するだけでなく、他の言語をサポートするアプリケーションを使用できるようにするためのプロジェクトに加えて。
  • 非侵襲的。ビジネスは、ビジネスロジックの実装に関係し、コード自体の希望のビジネスプラットフォームは、非侵襲的であり、かつ影響を最小化する、高い結合スケジューリングを望んでいません。
  • 高可用性/フェイルオーバー。スケジューリングシステム自体が単一点を持つことができない、高可用性を確保しなければならない、タスク実行プロセスは、問題が発生したため、救済は手動による介入を減らすことができ、平滑化、があります。
  • 可視化。操作タスクスケジューラを使用して簡単に、視覚的にページを提供しています。
  • リアルタイム監視。プラットフォームは、タスクのリアルタイム監視システム、リアルタイムのアクセス実行状態を持っています。
  • ダイナミック編集。サービスのタスククロックパラメータは、実行されたすべてのタスクの操作に基づいて視覚化で変更される可能性があり、ビジネス・システムにリアルタイムに反映されて行く、あなたが導入を停止する必要はありません。

上記の背景と考察に基づいて、我々はマイクロタスクスケジューリングサービスプラットフォームSIA-タスクを構築しています。

二、SIA-TASKのコア設計のアイデア

2.1はじめに

SIAは、略して「シンプルで素晴らしいです」です。

SIA-TASK(マイクロタスクスケジューリングサービスプラットフォーム)は、SIA-タスクを動的に拡大し、クロスプラットフォーム、オーケストレーション、高可用性、非侵襲性、一貫性、非同期並行して、現在のマイクロ・サービス・アーキテクチャ・モデルに合わせ、重要な製品の一つでありますリアルタイムのように監視します。

SIA-TASKタスクのスケジューリングが一つの解決策、使いやすいメタデータ収集タスクは、タスクの視覚的なレイアウト、最終的にタスクのスケジューリング、およびプロセス全体の監視タスクを取る、で​​す。ビジネス完全に非侵襲的な、タスクスケジューリングモデルは、シンプルで柔軟な構成を通じて期待に沿って生成することができます。

SIA-TASKリファレンス・デザイン・マイクロ・サービス、各タスクエグゼキュータの配布タスクのメタデータへのアクセス、およびタスクのレジストリにアップロードしました。JSON統一データ形式がコントロールセンター、プロセス・タスク、タスク通知によって解析されたクロックされて、HTTPプロトコルを使用して、タスクのスケジュールとして、動的にクロックを変更するためのタスクをオンラインスケジューリングタスクを使用しました。

2.2用語

SIA-TASK簡単な用語。

  • タスク(タスク):基本的な実行ユニット、HTTP呼び出しインタフェースの外部に露出したアクチュエータ。
  • ジョブ(ジョブ):一方の存在またはタスクの互い(シリアル/パラレル)に複数の論理的関係、スケジューリング・タスクの最小単位は、中心をディスパッチ。
  • プラン(計画):ジョブの実行順序の数は、各ジョブには、平面実装サイクルが存在しない、独自の実行サイクルを有します。
  • ミッションコントロールセンター(スケジューラ):各ジョブスケジューリングの実行期間に応じて、すなわち、プログラムロジックに従ってHTTPリクエスト、仕事、タスク、それが単一のノードです。
  • タスクのスケジューリングセンター(コンフィグ):振り付けセンターが計画やオペレーションを作成するタスクを使用します。
  • タスク実行部(実行部):サービス論理のHTTP要求の実行を受信するステップと
  • ハンター:春のプロジェクトの拡張パックは、ビジネスタスク書き込むことが、このコンポーネントに依存することができ、登録センターをアップロードし、タスクキャプチャの実装を担当しています。

の関係ジョブ、タスク、計画

タスクは、業務執行、露光外部HTTP呼び出しインタフェースアクチュエータの基本単位です。タスクジョブ、ジョブ計画の複数を構成する構成順次複数によって実行されます。

なぜここには計画がありますか?時々、2つのタスクは唯一の順序関係(BタスクがタスクAを実行した後に再び実行される)ではありません、またA、B 14時00分ミッションのタスクを実行するためにこのような午前10時など一定の要件を満たす必要があり、そして午前を確認する必要があります10時タスクの実行には時間通りに完成されています。

私は家にいないよ20:00には、その後、私は生きる方法がわからなかった場合、私は今日早く仕事を残せば、自宅で18以上の時、だけでなく、8まで待たなければならない比喩、今夜8:00ライブサッカーの試合は、そこにありますプランプログラムのソースである、試合を観戦するために開始することを指します。

2.3構成

CreditEaseマイクロタスクスケジューリングサービスプラットフォームの構築の練習|シェアを記録

SIA-TASKタスク管理プラットフォームは、次のコンポーネントがあります。

  • タスクエグゼキュータは、それがプロジェクトチームの一員であるあなたのビジネスのコードです。
  • タスクの登録センターは、我々はのZooKeeperを使用しています。
  • タスクのスケジューリングセンター
  • 永続ストレージ、我々はMySQLを使用しています。
  • ミッションコントロールセンター

2.4ファイル名を指定して実行

CreditEaseマイクロタスクスケジューリングサービスプラットフォームの構築の練習|シェアを記録

次に、SIAタスクロジックの詳細な動作。

まず、レポートノートには、タスク、レジストリへのタスクのタスク実行をクロール。起動時にタスクエグゼキュータは、制御コードにこのコメントとして、HTTPインタフェースが自動的にクロールされますので、長いメソッドに呼ばれるオンラインタスクの注釈があるでしょう、そして我々が使用ここでは、レジストリのタスクに報告しましたZooKeeperのです。

レジストリを保存するためにミッションからデータを取得するためにタスクのスケジューリングセンターは、永続ストレージを統合します。言い換えれば、アクチュエータの同等、ZooKeeperのをクロールするためにアップロードされたインターフェイスインスタンスのURLアドレスとポートにHTTP要求を処理するための呼び出しは、ZooKeeperのは、一つのタスク情報のZooKeeperタスク自体がクロールされます得ました内部のMySQLへのアウト。

ここでは、使命が何であるかを区別しなければならない、タスクインスタンスは何ですか。ビットクラスとオブジェクト間の関係のようなタスクとタスクとの関係の例としては、ビジネス・ロジック・コードが複数のノードに配備することができますされ、ビジネス・ロジック・コードであるノードは、とき、それは意志運用段階でクロール、まったく同じですアップクロールするビジネス・ロジック・コード上の各ノードは、それがこの仕事のための事業ですが、すべてのポートは、各IPアドレスに対応することは、おそらく、タスクインスタンスです。たとえば、とき高可用性ホットスタンバイ、我々は永続ストアを処理した後、タスク自体が保存されます情報、および情報は、インスタンス自体のZooKeeper年に留まります。

タスクは、これらのタスククロック、戦略を追加し、仕事の計画手配、およびMySQLに保存するための情報を提示するためにタスクをクロールに基づいてされている情報およびMySQLの構成での情報の中心にあるのZooKeeperに応じて設定することができます。

タスクのスケジューリングにクロールからスケジュール情報のための永続ストレージからのミッションコントロールセンター、スケジューリングタスクの実行論理アクセス制御に応じて仕事を、計画、クロック、論理的な戦略、ミッションコントロールセンターのレイアウトを知って、これらのアクチュエータ。

これは、SIA-TASKオペレーティングロジックであり、我々はカフカにおけるスケジュール・ログに維持されます。

2.5特性

1)アノテーションベースのタスクを自動的にクロール

OnlineTaskが自動的にIPアドレス、ポート、パス要求、リクエストメソッドが、情報は、タスク、レジストリ(飼育係)にアップロードフォーマットをパラメータ要求する方法をつかむだろう@、HTTPサービスのアプローチにコメントを@OnlineTask暴露に参加し、同期させますタスク情報は、永続ストアに書き込まれます。

コントロールの2)アノテーションベースの非侵襲的な複数のスレッド

シングルタスクインスタンスは、自動的に実行中のタスクが再びスケジューリングされることはありません保ち、コメント@OnlineTaskシングルスレッド動作制御をブロックするために、シングルスレッドのタスクスケジューリングフレームワークを実行する必要があります。そして、全体のプロセスは完全に開発者の認識を制御します。

状態でシングルスレッドのタスクを実行するときにことを保証するために、タスクインスタンスです。必要がシングルスレッドである場合、実際には、これは、ユーザ自身によって制御されて、そこに制御することができ、必要がマルチスレッドである場合、制御不能であることができます。このコントロールは、注釈プロセスに行く必要が追加コードを必要としません。

3)高度に柔軟なタスクスケジューリングモード

SIA-TASKタスクは原子アイデアを設計することで、複数のタスクの関係に従って実行されるジョブ(ジョブ)を形成するために結合されます。中央のタスクスケジューリングおよびタスクスケジューリング中心に実行中に、ジョブスケジューリングにおけるジョブの組成となるように、互いの離間。私たちは仕事の流れを調整する必要がある場合、我々は唯一の振り付けの中央で処理する必要があります。一方振り付けセンターの支援シリアル、パラレルのタスク、および組織的関係の他の支店。同じタスク・インスタンスで異なるタスクは、また、処理のスケジューリングの様々なサポートしており、全体のプロセス・コレオグラフィーは、ページ上で行われ、この機能は非常に使いやすいです、のハイライトは、SIA-TASKプラットフォームです。

4)適応型スケジューラタスクの割り当て

カスタマイズされたポリシーに基づいて、異常、できるマルチタスクが中断使命を確実にするために、タスクを再目覚めさせる時にタスク実行プロセスの障害が発生しました。私たちはどのように行うためにそのようなタスクの問題など、多くの戦略を、設定しますか?それは、再び目を覚ましますか?それとも問題では?またはアラーム手動による介入を送りますか?我々は、これらの問題に対処するための戦略の数をカスタマイズします。

2.6キーポイント

プラットフォームの機能を理解し、我々は、SIA-TASKの重要な技術的なポイントを整理しなければなりません。

  • タスクの流れ。流れ関係は、有向非巡回グラフ(DAG)を形成し、タスクおよびタスクの構成との間で達成されてもよいです。タスク・フローは、ロジックDAGを行い、タイマー時間(クーロン式)、または外部の要求を(APIのアドレスを提供)を開始することができます。
  • メタデータ管理。マイクロ同期データキャプチャ、エントリ内の各タスクのメタデータ管理サービス。
  • インテリジェントな運用・保守。リアルタイム監視タスクの可視化、すべてのモニタすべてのページを見ることができますされ、リアルタイム早期警戒メカニズム、何かがうまくいかない、関係者に警告するために、電子メールやテキストメッセージを送信し、半インテリジェント自律修復を、再試行スニッフィングなし手動による介入。
  • リソースの分離。プロセス間の資源の分離、安定性を提供し、システムのスループットを向上させる、工程で分離リソース。同じスケジューラのコアスケジュール、コアスケジュールとグループプロジェクトに派遣センター、同じスケジュールされた時間内の各プロジェクトチームを持つ時計は、孤立している、間違って行くように設定されたプロジェクトは、影響はありませんアイソレーション負荷分散と同等のものを表し、他のプロジェクトチーム、。
  • ロードバランシング。発送センタースケジュールされたタスクは、タスクの実行サイクル時間と同じではありません、それは少し長く、いくつかのタスクのために必要な場合があり、いくつかのタスクが少し短い時間を必要とし、スケジューラのリソースが同じ、いくつか少し高いCPUではない、そこにありますCPU下、どのようにスケジューリング負荷分散することを確実にするために?分離されたリソースバランシングの負荷を確保するには?私たちは、タスクのスケジューリング(時間のかかる作業)や機械自体のパフォーマンスの歴史的価値に基づいて、各タスクスケジューラ派遣センターの数はほぼ同じ程度消費したこの値を検討します。これは新しい負荷ではなく、シンプルなトラフィック負荷です。

三、SIA-TASKの構成モジュール

3.1ホーム

スケジューリング情報、スケジューリング時間、ドッキングプロジェクトの詳細:ホームタスクスケジューリング管理は、主に3つの部分を含んでいます。

  • スケジュール情報:ディスパッチセンタースケジューラの数。
  • 回のスケジュール:ジョブの派遣センターディスパッチャ累計歴史。
  • プロジェクトの詳細をドッキング:合計チームのコントロールセンターのドッキング、ジョブの総数は。

現在、SIAタスク・プラットフォーム上で51件のプロジェクトへのアクセス権を持って、仕事の数は、上記にオンライン版、仕事は30以上万回実行されている、600以上今年があります実行します。

スケジューラが知っている必要があります上のいくつかの値がありますが、各スケジューラは、3つのインジケータがあります。

  • 上限ジョブ:ジョブ動的閾値を読み込むことができます。
  • 実行ジョブ番号:ジョブスケジューラの数は、現在実行しています。
  • ジョブ警告値:ジョブスケジューラの数が警告値上で実行するには、管理者に通知する電子メールを送信します。

3.2スケジューラ管理

CreditEaseマイクロタスクスケジューリングサービスプラットフォームの構築の練習|シェアを記録

、スケジューラは、リストにはジョブの詳細をつかむ表示するには、スケジューラ(ヒストグラム)をクリックして、示されているようディスパッチャに関するいくつかの情報は、知っている必要があります。

  • JobKey:ジョブ名の設定は、各ジョブには独自の名前を持っています。
  • タイプ:二つのカテゴリーcronとfix​​Rateに分かれて仕事の設定タイミングタスクタイプ、。
  • ジョブタイプ値:書き込む方法クロン式、6のタイムスタンプであれば、それはfixRateであれば、それは、どのくらいの時間間隔です。
  • 警告メール:このジョブの設定警告のメールボックス。
  • 説明情報:ジョブ機能情報の内容、及び管理者はすぐにスケジューラをつかむためにジョブ情報ステーションを見つけることができます。

スケジューラは、ジョブスケジューラ、スケジューラオフライン、オフラインスケジューラ、ホワイトリストを含んでいます。

  • 作業スケジューラ:スケジューラは、このようなプリエンプションとジョブのスケジューリングの能力を持っています。スケジューラ上でオフライン操作を実行し、それはすぐにプリエンプト他のスケジューラを実装が仕事を押収した後に自動的に解放されます仕事を押収し、その後である能力を失うことになる、オフラインオフラインスケジューラのリストを入力しますスケジューラ。ジョブスケジューラは、組立ラインの機能をオフにオフラインとバッチのリストを提供します。要するに、作業はスケジューラスケジューラの仕事であることです。
  • オフラインスケジューラ:スケジューラプロセスのこのタイプはまだ生きているが、ジョブスケジューリングと参加をつかむ能力を失いました。そのようなスケジューラのオンライン操作を実行する、スケジューラは、作業リストを入力して、ジョブのプリエンプションやスケジューリングを開始する能力を持っています。オフラインのスケジューラ機能は、オンラインとバッチラインのリストを提供します。それがオフラインスケジューラがまだ生きている、ではありませんが、もはや仕事をつかむ関与、仕事はまだいくつかは、以前にそれが仕事のスケジューラになり、再度ラインをクリックしてジョブを押収する能力を持っている場合は、完成していきます。
  • オフラインスケジューラ:スケジューラプロセスのこのタイプは、もはや生きている、組立ラインのプロセススケジューラオフ死の後、スケジューラは自動的にオフラインリストを入力するようスケジューラプロセスが再開された後、それが自動的にオフラインスケジューラのリストになります。オフラインスケジューラリストには、一括削除し、削除機能を提供します。オフラインスケジューラの一般的な問題があり、プロセスがハングアップすることができる、それがネットワーク障害である可能性があります。
  • ホワイトリスト:;ホワイトリストは、バルク削除機能を提供し、自動的にIPを削除する権限を失うホワイトリストIPの後、それは権威のすべての実行インスタンスを呼び出す必要があります。

3.3ディスパッチ・モニタリング

CreditEaseマイクロタスクスケジューリングサービスプラットフォームの構築の練習|シェアを記録

図スケジューリングSIA-TASK監視画面に表示され、サブ領域は、プロジェクトグループの異なる1つに属します。現在、51件のプロジェクトにSIAタスク・アクセス、25で実行されている、準備に500以上があります。

いくつかのジョブの実行がオーバー実行に数秒、非常に高速であり、いくつかのジョブの実行が非常に遅いですが、それはこれらがキャプチャされ、唯一の長い時間仕事をつかむために、我々は状態で撮影し、長い時間がかかり、仕事にクロールされていないジョブ表示キャッチ時間の短いではなく実行されているが、それらが実行されているが、準備として表示されます。

いくつかの仕事は、この時間を実行する必要がないかもしれない、あなたは残りの部分が異常ジョブを停止して手動で停止することができ、電子メールアラートを送信する必要があります。

我々はまた、検索する機能を提供し、プロジェクトの実行中に別のチームのログインを受け入れることができます。

3.4タスク管理

タスク管理インターフェイスは、タスクはプロジェクトチーム、タスク構成の主な提供、修正や機能の削除に応じてグループ化されました。タスクは、2つの部分から構成:タスクが自動的にタスクが標準アノテーションによって達成つかむ、タスクのこのタイプは変更することができない、SIA-タスクハンター・コンポーネントを使用し、タスクの別の部分は、ユーザによって手動で追加され、そしてIは、URLとHTTPアクセスを知っていますアドレスは、手動で、クロスプラットフォームサポートをクロールタスクのこの部分に追加し、変更または削除することができます。

プロジェクト名、アプリケーション名、タスク名、マシンアドレス、説明、および表示/変更/接続テストおよびその他の操作:タスク管理は、次の部分から構成されています。タスク同じ名前、別のマシンのアドレスは、異なるタスクとタスクインスタンスを表します。

3.5ジョブ管理

CreditEaseマイクロタスクスケジューリングサービスプラットフォームの構築の練習|シェアを記録

数で構成されるジョブのタスクの前に導入され、各列の数字は、すべての項目を表示するには、あなたがフィルタリングすることができ、追加、他の操作の状態を表示するには、ドロップダウンリストをクリックし、別のプロジェクト名を表します。

操作のステータスを手動で実行することができますどこで仕事を構成した後、あなたが非アクティブ状態に属し、ジョブを停止するか、有効にすることができ、あなたはそれを有効にする必要があります。あなたはまたように、ジョブ内の情報を変更するジョブ構成とすることができます。
ジョブを追加する方法?私は表現cronジョブの種類を追加したい場合は、どのようなあなたはそれを追加する必要がありますか?

cronジョブは、それぞれのキーを持って、私は6式の内容を入力するだけでなく、警告メールを追加し、その後、仕事内容ために必要なすべての最初の、なぜなら式のタイプの仕事で、最後はまたJob_keyを追加する必要があります。このような新しい仕事にも追加されます。

振り返ってみると、あなたが設定する必要があるジョブタスクの情報を追加し、これは、より複雑なプロセスです。タスクジョブ組成複数の、我々は、ジョブタスクとの関係に基づいて、すべての順序関係からなる形成されたドラッグプル方法タスクを決定することができます。もちろん、管理者のみがすべてのプロジェクトを見る権利があるにも区別するために、異なる色で異なるアイテムを表すことができる、各プロジェクトの担当者は、自分の国有プロジェクトを見ることができます。

作業時間がいくつかのパラメータをもたらすアップロード、それはまた、このようなパラメータのタイプとして処理パラメータ、パラメータ値、有効期限に関する。通話時間に焦点が満了しました。

HTTP呼び出しによって問題が発生します。最後にタスクが完了し、実行します何時。この問題を解決するには、タスクの有効期限を設定する必要があり、限り、有効期限が来るように、このような捨てられたか、手動処理など他の戦略に転送されます。非同期呼び出しとして、結果を返すために、クライアントのために永遠に待つことができないので。

もちろん、また状況があるかもしれません。私が得る結果は、実際には、タスクが正常に実行され、残業ですが、時間の経過後に、私は結果を返すようにするために。私たちは、この問題に対処するためのキュー補償機構を設計しているが、それはあまり重要でいるようです。もちろん、これは、オンラインプラットフォーム、登場していない場合のみ可能です。

現在Task_プラットフォームの選択戦略は、2つの例が含まれています。

  • オプションのランダムに選択された例、すなわちIP +ポートのリストからランダム。
  • 固定IP、インスタンスを指定して、手動で選択可能なリストからインスタンスを指定する必要があります。
    プラットフォームは、4つのTask_呼び出し失敗した戦略をサポートしています。
  • STOPは、戦略は全体の仕事を停止し、その後のタスクを実行しませんその後、失敗し停止します。
  • 、IGNOREポリシーを無視して、コールはフォローアップ作業を実施していき、タスクをスキップして失敗しました。
  • それでも失敗した場合は、転送、転送ポリシーの他の例では、ストップ戦略を使用して、タスクの実行を選択します。
  • MULTI_CALLS_TRANSFER、複数の呼び出した後、転送戦略、タスク数回を繰り返し呼び出し、まだ失敗した場合、ステージングポリシー。

3.6スケジューリングログイン

ログ管理情報は、プロジェクトチームのグループによって表示される実行ログの仕事を提供し、ジョブ・ログの重要な要素が含まれています。

  • 実行状態:そのジョブの実行結果を示します。
  • 時刻:timeジョブスケジューラのスケジュールを示します。
  • 実行完了時間は:完了するためのジョブの実行時間を示します。
  • スケジューリング情報は:ジョブスケジューラのインスタンスを要求します。
  • 実行情報:特定の情報ジョブの実行、およびログは、デフォルト7日間で保存されている参照ジョブタスクに関連付けられた実行ログ情報を達成しました。

第四に、オープンソース

SIAの重要な製品としてSIA-TASKチーム、プロジェクトの数十に会社のアクセス、ジョブの数百を実行し、安定性のテストに耐えました。

月のSIA-TASKマイクロサービススケジューリングプラットフォームは、オープンソース、オープンソースアドレスされています:https://github.com/siaorg/sia-Task、興味のある学生は、詳細を表示するには、ログインすることができます

梁新:で共有

出典:テクノロジーのCreditEase研究所

おすすめ

転載: blog.51cto.com/14159827/2444455