コード内にスケジューリング可能な状態を実装するにはどうすればよいですか?私の場合、私は毎月の声明を出す必要があるので、これにはscheduleablestateを使うことができますか?コード内のスケジューリング可能な状態の実装
答えて
多くのことを行う必要があります。
まず、あなたの状態オブジェクトはSchedulableState
インターフェイスを実装する必要があります。これは、追加のメソッドを追加します。
interface SchedulableState : ContractState {
/**
* Indicate whether there is some activity to be performed at some future point in time with respect to this
* [ContractState], what that activity is and at what point in time it should be initiated.
* This can be used to implement deadlines for payment or processing of financial instruments according to a schedule.
*
* The state has no reference to it's own StateRef, so supply that for use as input to any FlowLogic constructed.
*
* @return null if there is no activity to schedule.
*/
fun nextScheduledActivity(thisStateRef: StateRef, flowLogicRefFactory: FlowLogicRefFactory): ScheduledActivity?
}
このインタフェースは、オプションのScheduledActivity
インスタンスを返す実装するnextScheduledActivity
という名前のメソッドが必要です。 ScheduledActivity
は、アクティビティを実行するために各ノードが実行するFlowLogic
インスタンスを取得し、実行するタイミングはjava.time.Instant
となります。状態がこのインタフェースを実装し、ボールトによって追跡されると、ボールトにコミットされたときに次のアクティビティを照会することが期待できます。例:
class ExampleState(val initiator: Party,
val requestTime: Instant,
val delay: Long) : SchedulableState {
override val contract: Contract get() = DUMMY_PROGRAM_ID
override val participants: List<AbstractParty> get() = listOf(initiator)
override fun nextScheduledActivity(thisStateRef: StateRef, flowLogicRefFactory: FlowLogicRefFactory): ScheduledActivity? {
val responseTime = requestTime.plusSeconds(delay)
val flowRef = flowLogicRefFactory.create(FlowToStart::class.java)
return ScheduledActivity(flowRef, responseTime)
}
}
第二に、(この場合FlowToStart
で)開始するschedultedさFlowLogic
クラスも@SchedulableFlow.
例えばで注釈されなければなりません今
@InitiatingFlow
@SchedulableFlow
class FlowToStart : FlowLogic<Unit>() {
@Suspendable
override fun call() {
// Do stuff.
}
}
ExampleState
をボールトに格納されているときに、FlowToStart
はExampleState
で指定された時間オフセットで開始するschedultedします。
これだけです!
私の場合は、プリンシパル親状態の金額。したがって、私の親の状態は毎月のステートメント(子ステート)を作成する毎月のフローをスケジューリングするschedulablestateになります。私は正しい? – Raghuram
それはまさに正しいことです。あなたはスケジューリング可能な状態を実装し、1ヶ月の遅延を行います。ステートメントを発行するフローは、タイマーがトリガーされたときに実行されます。 Cheers –
スケジューリング可能な状態は、2つのノード間のtxの一部であり、この状態は両方のノードのノードに存在します。そのような場合、スケジューラフローは両方のノードでトリガされます。しかし、私はそれが1つのノードでのみ起動されることを望みます。出来ますか? – Raghuram
- 1. C++の実装状態
- 2. "ドメイン内のすべての実行可能なデバイスがビジー状態です"
- 3. 状態バックエンド用のカスタムファイルシステムアダプタを実装することは可能ですか?
- 4. LAMP:スケジューリングの実装方法
- 5. アルゴリズムのDcg状態の実装
- 6. ラーベル可能競合状態?
- 7. 状態と制御可能なゲームオブジェクト
- 8. MsgWaitForMultipleObjectsExとアラート可能な待機状態
- 9. 状態パラメータを変更し、状態をリロードしません。実現可能か?
- 10. 可変スコープシングルトンの可能な競合状態ですか?
- 11. WebSphereのWebコンテナ・スレッドは、実行可能な状態で最大スレッド状態でハングします
- 12. スレッドは実行状態から実行可能状態にどのように移行しますか?
- 13. Javafx:TreeTableView内で3状態チェックボックスを実装する方法
- 14. JavaFx2.0のゲームフレームで使用するシンプルな状態マシンの実装
- 15. チェック可能な実装のFloatingActionButton
- 16. Moqの連鎖可能な実装
- 17. クリック可能なLabelFieldの実装方法。
- 18. レール、スケジューリング可能な宝石を使用
- 19. 全体的なグローバルWebページのクエリ可能な状態
- 20. 可能System.String実装
- 21. C++で拡張可能なコードを実装する
- 22. 光沢のあるDTの状態がレンダリング可能な場合
- 23. 複数の観測可能な状態でのReactiveXフィルタリングとマージ
- 24. 編集可能なUITableViewデータソースの実装可能
- 25. クエリ可能状態をリセットする
- 26. 休止後のタスクのスケジューリング(リフレッシュ可能)
- 27. 仮想マシンの状態とステータスに可能な値
- 28. すべてのトランジション可能な状態マシン
- 29. 実行エラー、org.apache.hadoop.hive.ql.exec.mr.MapRedTask(状態= 08S01、コード= 1)
- 30. ドラッグ可能、サイズ変更可能、HTML、状態保存
これは興味深い質問ですが、同様の使用例については取り組んでいますが、実用的な実装ではありませんが、スケジューリング可能な状態が必要です。 –