サブスクリプション

サブスクリプションを使用すると、レイヤー内のデータの変更について通知を受け取ることができます。 監視対象レイヤーのデータが変更された場合、バックエンドは定義されたストリーム レイヤー でメッセージを生成します。 その後、 HERE プラットフォームの Flink 環境を使用するなど、他の通常のストリーム レイヤー メッセージと同様に、これらのストリーム レイヤー メッセージに対応できます。

メモ :

サブスクライブします

インタラクティブなマップ レイヤー の変更をサブスクライブするに は、AdminApisubscribe機能を呼び出す必要があります。

現在、インタラクティブなマップ レイヤー サブスクリプションタイプは次の 3 つです。

  • perFeature - 機能ごとのインタラクティブなマップサブスクリプションタイプ
  • perTransaction - トランザクションごとのインタラクティブなマップサブスクリプションタイプ
  • contentChange - インタラクティブな地図サブスクリプションタイプを変更します

その結果、他のサブスクリプション管理機能に使用できる HERE リソースネーム が作成されます。

Scala
Java
val subscriptionName = "someSubscription"
val adminApi = DataClient().adminApi()
val subscriptionConfig = WritableSubscriptionConfiguration(
  subscriptionName = subscriptionName,
  description = Some(s"description of $subscriptionName"),
  sourceCatalog = HRN.fromString("hrn:::::sourceCatalog"),
  sourceLayer = "someSourceLayer",
  destinationCatalog = HRN.fromString("hrn:::::destinationCatalog"),
  destinationLayer = "someDestinationLayer",
  interactiveMapSubscription =
    InteractiveMapSubscriptionConfiguration(InteractiveMapSubscriptionType.CONTENT_CHANGE)
)
val subscriptionHrn = adminApi.subscribe(subscriptionConfig).await
String subscriptionName = "someSubscription";
AdminApi adminApi = DataClient.get(myActorSystem).adminApi();
WritableSubscriptionConfiguration subscriptionConfig =
    WritableSubscriptionConfiguration.builder()
        .withSubscriptionName(subscriptionName)
        .withDescription(String.format("description of %s", subscriptionName))
        .withSourceCatalog(HRN.fromString("hrn:::::sourceCatalog"))
        .withSourceLayer("someSourceLayer")
        .withDestinationCatalog(HRN.fromString("hrn:::::destinationCatalog"))
        .withDestinationLayer("someDestinationLayer")
        .withInteractiveMapSubscription(
            new InteractiveMapSubscriptionConfiguration.Builder()
                .withInteractiveMapSubscriptionType(
                    InteractiveMapSubscriptionType.CONTENT_CHANGE())
                .build())
        .build();
HRN subscriptionHrn = adminApi.subscribe(subscriptionConfig).toCompletableFuture().get();

サブスクリプション解除

インタラクティブなマップ レイヤー の変更をサブスクリプション解除するに は、subscribe通話から取得したサブスクリプション HERE リソースネーム AdminApiでのunsubscribe機能を呼び出す必要があります。

Scala
Java
adminApi.unsubscribe(subscriptionHrn).await
adminApi.unsubscribe(subscriptionHrn).toCompletableFuture().get();

サブスクリプションが存在するか確認してください

サブスクリプションが存在するかどうかを確認するに は、サブスクリプション HERE リソースネーム を使用してAdminApicheckIfSubscriptionExists機能を呼び出します。

Scala
Java
val exists = adminApi.checkIfSubscriptionExists(subscriptionHrn).await
println(
  s"The subscription ${subscriptionHrn.toString} does ${if (exists) "" else "not "} exist")
boolean exists =
    adminApi.checkIfSubscriptionExists(subscriptionHrn).toCompletableFuture().get();
System.out.println(
    String.format(
        "The subscription %s does%s exist", subscriptionHrn.toString(), exists ? "" : " not"));

サブスクリプションの設定を取得します

サブスクリプションの設定を取得するには、サブスクリプション HERE リソースネーム を使用してAdminApigetSubscriptionConfiguration機能を呼び出します。

Scala
Java
adminApi.getSubscriptionConfiguration(subscriptionHrn).map(s => println(s.subscriptionHrn))
System.out.println(
    adminApi
        .getSubscriptionConfiguration(subscriptionHrn)
        .toCompletableFuture()
        .get()
        .getSubscriptionHrn()
        .toString());

サブスクリプションを一覧表示します

listSubscriptions の機能を呼び出し AdminApiて、アクセス権を持つすべてのサブスクリプションのリストを取得できます。

limit 取得したリストページのサイズを制御するオプションのパラメータを指定できます。 デフォルト値は、 1 ページあたり 100 サブスクリプションです。 listSubscriptions コールのパフォーマンスに問題がある場合は、より高い値を入力する必要があります。

Scala
Java
adminApi
  .listSubscriptions()
  .map(_.foreach(s => println(s.subscriptionHrn)))
// --- OR ---
adminApi
  .listSubscriptionsAsSource()
  .map(_.runWith(Sink.seq).map(_.foreach(s => println(s.subscriptionHrn))))
for (Iterator<SubscriptionConfiguration> iter =
        adminApi.listSubscriptions().toCompletableFuture().get();
    iter.hasNext(); ) {
  System.out.println(iter.next().getSubscriptionHrn());
}

」に一致する結果は 件です

    」に一致する結果はありません