【问题标题】:Can I perform an action in response to an event without changing state in stateless4j?我可以在不改变 stateless4j 状态的情况下响应事件执行操作吗?
【发布时间】:2017-10-27 14:21:25
【问题描述】:

使用 stateless4j 我试图执行一个动作来响应一个特定状态的参数事件。处理完事件后我不想改变状态。

由于 stateless4j 不支持对事件的操作(尽管我看到有一个待处理的补丁),我反而滥用了 permitDynamic() 并使用选择器来执行我的操作。然后我在选择器中返回相同的状态。因此,在action_activated_serviceRegistered 下面的代码中返回FsmState.ACTIVATED

   activationFsmConfig
        .configure(FsmState.ACTIVATED)
        .onEntry(fsmFunctions::action_activated_entry)
        .onExit(fsmFunctions::action_activated_exit)
        .permitDynamic(new TriggerWithParameters1<>(Trigger.SERVICE_REGISTERED, ServiceReference.class), fsmFunctions::action_activated_serviceRegistered);

我遇到的问题是,即使我没有更改状态,我的状态的退出和进入操作也会触发。

有更好的方法吗?

【问题讨论】:

    标签: java fsm stateless4j


    【解决方案1】:

    也许您可以在 .ignoreIf(Trigger, guard) 的保护条件下执行您的操作。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-26
    • 2017-07-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多