2017-11-27 7 views
2

Apache Beamパイプラインがデータフローテンプレートとして正常に実行されています。しかし、私はDataflowPipelineOptionsを拡張するオプションクラスを持っています。このクラスは、テンプレートが生成されたときにpomまたはコマンドラインインターフェイスから引数を得ました。 プロパティファイルからこれらのパラメータを直接ロードできるように、クラスが存在するかどうかを知りたいです。このようにすれば、環境から環境への切り替えが容易になり、よりきれいになります。プロパティファイルのApache Beamオプション

答えて

2

私はあなたの質問を理解していますか分かりません。私はあなたがコマンドラインまたはpom.xmlファイルからではなく、リソースファイルから提供される値にデフォルトのテンプレートパラメータをバインドする方法があるかどうかを尋ねていると思います。

と指定されたパラメータには、パラメータのデフォルト値を生成するためのユーザ提供のファクトリメソッドを指定することができます。これにより、DefaultValueFactory実装内のリソースファイルからデフォルト値を読み取ることができます。

/** A {@link DefaultValueFactory} that returns the current system time. */ 
public static class DefaultToCurrentSystemTime implements DefaultValueFactory<Long> { 
    @Override 
    public Long create(PipelineOptions options) { 
    return System.currentTimeMillis(); 
    } 
} 

@Description("Minimum randomly assigned timestamp, in milliseconds-since-epoch") 
@Default.InstanceFactory(DefaultToCurrentSystemTime.class) 
Long getMinTimestampMillis(); 
void setMinTimestampMillis(Long value); 
WindowedWordCountDefaultToCurrentSystemTimeを定義する方法の例について

は、minTimestampMillisパラメータに注釈を付ける参照します

関連する問題