すべてのプロダクト
Search
ドキュメントセンター

SchedulerX:Golang アプリケーションを Golang 用 SDK を使用して SchedulerX に接続する

最終更新日:Jan 14, 2025

このトピックでは、Golang 用 SDK を使用して Golang アプリケーションを SchedulerX に接続する方法について説明します。

コンソールでの設定

  1. アプリケーションを作成します。詳細については、「アプリケーション管理」トピックのアプリケーションの作成をご参照ください。アプリケーションの設定情報を生成します。詳細については、「オンプレミス環境からインターネット経由で SchedulerX に接続する」トピックの手順 2をご参照ください。

    image.png

    image.png

  2. Golang ジョブを作成します。詳細については、タスク管理をご参照ください。

    image.png

クライアントアクセス

  1. 次のコマンドを実行して、最新のタグを使用して Golang パッケージ用 SDK とその依存関係をダウンロードしてインストールします。

    go get github.com/alibaba/schedulerx-worker-go@{Latest tag}

    また、次のコマンドを実行して、Golang ブランチパッケージ用 SDK とその依存関係をダウンロードしてインストールすることもできます。

    go get github.com/alibaba/schedulerx-worker-go@{Branch name}
  2. 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
    }
    
  3. 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 {}
    }
    

結果の確認

  1. アプリケーションが SchedulerX に接続された後、アプリケーションを Alibaba Cloud に公開します。

  2. SchedulerX コンソールにログインします。

  3. 上部のナビゲーションバーで、リージョンを選択します。

  4. 左側のナビゲーションペインで、[アプリケーション管理] をクリックします。

  5. [アプリケーション管理] ページで、[インスタンスの総数] を表示します。

    • [インスタンスの総数] 列に 0 が表示されている場合、アプリケーションは SchedulerX に接続されていません。この場合は、オンプレミスアプリケーションを確認して変更します。

    • [インスタンスの総数] 列に 0 以外の数値が表示されている場合、アプリケーションは SchedulerX に接続されています。[操作] 列の [インスタンスの表示] をクリックして、[インスタンスへの接続] パネルでインスタンスを表示します。

次のステップ

アプリケーションが SchedulerX に接続された後、SchedulerX コンソールでジョブを作成できます。詳細については、「ジョブ管理」トピックの「ジョブの作成」セクション (ジョブ管理) をご参照ください。

参照

Golang