問題タブ [stateless-state-machine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
5 に答える
12686 参照

c# - .NETワークフローエンジンの提案

Simple State Machine for Booに基づく階層型ステートマシンフレームワークであるステートレスに出くわしましたが、C#3.0を使用して構成されています

設定と使用は簡単です。おそらくすぐに使用します。

しかし、私はただ疑問に思っていました

  • 誰もが実際のプロジェクトにステートレスを使用しました(もしそうなら、あなたの意見は何ですか?)
  • .NET用の他の優れたワークフローエンジンはありますか?(WF以外)
0 投票する
2 に答える
10928 参照

c# - ステートレス フレームワークを活用する方法

コードでhttp://code.google.com/p/statelessを使用して、機能をその依存関係から分離したいと考えています。高度な使用例が見つからなかったため、この質問はステートレス フレームワークのベスト プラクティスに関するものです。

次の構成があります (これは単なる例であり、機能状態は 1 つだけです)。

次に、実際の機能を呼び出す場所。私は次のアイデアを持っていましたが、それぞれに長所と短所があります。

1) OnEntry() で機能と次の起動を設定します。

それで、私が電話するだけなら

State.Finished または State.Error のいずれかになります。

  • 利点 - すべて一緒に
  • 短所 - ソリューションは実際にはユニットテストできません

2) ステートマシンと機能を次のように分離します。

p>

  • 利点: ステートマシン自体をテストできる
  • 短所:あまり好きではない

3) 他の解決策はありますか?

どんな答えでも嬉しいです

0 投票する
1 に答える
12246 参照

c# - ステートレスを使用した基本的なステート マシンのセットアップ

かなり単純な状態のニーズがいくつかあります (今のところ)。Stateless apiを使用してこれらをモデル化したいと思います。(しかし、私はステート マシンについてあまり詳しくないので、間違っている可能性があります。)

しかし、私は用語(具体的にはStateTrigger)に巻き込まれています

例を次に示します。注文クラスがあります。いくつかの状態でセットアップされます。それらは次のとおりです:新規、充填済み、出荷中、完了済み、キャンセル済み。

私が望むいくつかの単純な状態ルールは、これらの状態遷移が許可されることです。

  • 新規 (デフォルト)
  • 新規 -> 記入済み
  • 新規 -> キャンセル
  • 発送済み -> 配送中
  • 記入済み -> キャンセル済み
  • 発送済み -> 配送中
  • 発送→完了

ここでつまずいたのは、私の「トリガー」とは何ですか?

より具体的な例が必要な場合に備えて、次のようなメソッドが必要だとします。

ステータスが正常に更新された場合は true を返します。これを実現するためにステートレスをどのようにセットアップして使用できますか?

0 投票する
2 に答える
1143 参照

c# - ステートレス ステートマシン フレームワークと高い CPU 使用率

Stateless Framework を使用して StateMachine を作成しています。私のメインアプリケーションは、クラスを呼び出す ConsoleApplication であり、DataManagerクラスを呼び出すGetData関数を呼び出して、ステートマシンで関数をTask実行します。Receiver

私の問題は、StateMachine の実行時に CPU 使用率が約 50% になることです。単純な switch ステートメントと同じ Task を使用して StateMachine を実装すると、0% の CPU 使用率で実行されます! コーディング エラーがありますか、それともステートレス フレームワークの動作ですか?

GetData 関数

DataManager クラス

よろしくマイケル

0 投票する
1 に答える
2289 参照

c# - ステートレスでステートマシンを自動進行

私は最近、ステートレス (C# の HSM) ( https://code.google.com/p/stateless/ )を試していて、達成方法がよくわからないものに出会いました。

次の状態があるとします。

  • 始める。

  • 接続

  • 読んだ

  • 終了

私が達成しようとしているのは、TCP 接続 (Connect 状態) が確立されると、Read 状態に進むことです。または、失敗した場合は、Finish 状態に進みます (Connect 状態に戻り、タイムアウト期間後に新しい接続を試行する場合があります)。

ステート内からトリガーを起動するとスタック オーバーフロー例外が発生する可能性があるため、ステートレスを使用してこの自動進行機能を実現するにはどうすればよいですか?

乾杯

0 投票する
1 に答える
1590 参照

c# - 有限状態マシンの OnEntry() メソッドから状態を変更するトリガーを起動する必要がありますか?

アプリケーションで有限状態マシンをモデル化するために、ステートレス フレームワーク ( https://code.google.com/p/stateless/ ) を使用しています。いくつかのロジックを実行し、すぐに次の状態に移行する特定の状態があります。次のようにこれを行うのは良い習慣なのだろうかと思います:

これは優れた FSM 設計ですか? そうでない場合、より良いアプローチは何ですか?私が実装しようとしているアイデアは、DoSomeStuff() が終了するのを待ってから、マシンを次の状態に移行するようにトリガーする外部コードを持たずに、自動的にマシンを次の状態に進める特定の状態を持つことです。

0 投票する
1 に答える
6850 参照

c# - ステートレス ステート マシン ライブラリ - 構造化の適切な方法は?

C# ステートレス ライブラリを使用する場合、人々はコードをどのように構成しますか?

https://github.com/nblumhardt/stateless

これが注入された依存関係とどのように結びついているか、責任と階層化の正しいアプローチに特に興味があります。

私の現在の構造は次のとおりです。

OnEntry フック内ですべてのプロセス (サービスへの呼び出し) を実装する必要がありますか、それとも、状態遷移が許可されていることが確認された後に、外部でプロセスを実装する必要がありますか? もしそうなら、トランザクション管理をどのように行うのだろうか。

私が求めているのは、ステートレスを使用して何かを既に実装している人からの最良のガイダンスと、コード構造へのアプローチ方法だと思います。