このトピックでは、Golang 用 SDK を使用して Golang アプリケーションを SchedulerX に接続する方法について説明します。
コンソールでの設定
アプリケーションを作成します。詳細については、「アプリケーション管理」トピックのアプリケーションの作成をご参照ください。アプリケーションの設定情報を生成します。詳細については、「オンプレミス環境からインターネット経由で SchedulerX に接続する」トピックの手順 2をご参照ください。
Golang ジョブを作成します。詳細については、タスク管理をご参照ください。
クライアントアクセス
次のコマンドを実行して、最新のタグを使用して Golang パッケージ用 SDK とその依存関係をダウンロードしてインストールします。
go get github.com/alibaba/schedulerx-worker-go@{Latest tag}
また、次のコマンドを実行して、Golang ブランチパッケージ用 SDK とその依存関係をダウンロードしてインストールすることもできます。
go get github.com/alibaba/schedulerx-worker-go@{Branch name}
Processor
インターフェースを実装するサービスコードを記述します。type Processor interface { Process(ctx *processor.JobContext) (*ProcessResult, error) }
例:
package main import ( "fmt" "github.com/alibaba/schedulerx-worker-go/processor" "github.com/alibaba/schedulerx-worker-go/processor/jobcontext" "time" ) // Processorインターフェースを実装 var _ processor.Processor = &HelloWorld{} type HelloWorld struct{} func (h *HelloWorld) Process(ctx *jobcontext.JobContext) (*processor.ProcessResult, error) { fmt.Println("[Process] Start process my task: Hello world!") // タスク実行を模擬 time.Sleep(3 * time.Second) ret := new(processor.ProcessResult) ret.SetStatus(processor.InstanceStatusSucceed) fmt.Println("[Process] End process my task: Hello world!") return ret, nil }
Golang ジョブをクライアントに登録します。ジョブ名は、コンソールで指定したものと同じです。
package main import ( "github.com/alibaba/schedulerx-worker-go" ) func main() { // これは単なる例であり、実際の設定はプラットフォームから取得する必要があります。 cfg := &schedulerx.Config{ Endpoint: "acm.aliyun.com", Namespace: "433d8b23-xxx-xxx-xxx-90d4d1b9a4af", GroupId: "xueren_sub", AppKey: "xxxxxx", } client, err := schedulerx.GetClient(cfg) if err != nil { panic(err) } task := &HelloWorld{} // ジョブの名前を指定し、クライアントに登録します。ジョブ名は、コンソールで指定した名前と一致している必要があります。 client.RegisterTask("HelloWorld", task) select {} }
結果の確認
アプリケーションが SchedulerX に接続された後、アプリケーションを Alibaba Cloud に公開します。
SchedulerX コンソールにログインします。
上部のナビゲーションバーで、リージョンを選択します。
左側のナビゲーションペインで、[アプリケーション管理] をクリックします。
[アプリケーション管理] ページで、[インスタンスの総数] を表示します。
[インスタンスの総数] 列に 0 が表示されている場合、アプリケーションは SchedulerX に接続されていません。この場合は、オンプレミスアプリケーションを確認して変更します。
[インスタンスの総数] 列に 0 以外の数値が表示されている場合、アプリケーションは SchedulerX に接続されています。[操作] 列の [インスタンスの表示] をクリックして、[インスタンスへの接続] パネルでインスタンスを表示します。
次のステップ
アプリケーションが SchedulerX に接続された後、SchedulerX コンソールでジョブを作成できます。詳細については、「ジョブ管理」トピックの「ジョブの作成」セクション (ジョブ管理) をご参照ください。