当前位置: 首页 > 知识库问答 >
问题:

Spring集成Java DSL:不断创建和销毁集成流

袁子瑜
2023-03-14

我的流在数据库中html" target="_blank">配置,我的程序不断创建和销毁流。

因此,流配置(例如cron配置)可以随时更改。

这些流是用方法IntegrationFlowContext注册的。使用IntegrationFlowRegistration方法注册并销毁。销毁。

流的运行从第0秒开始,可以在任何一分钟开始。销毁和创建新流从每分钟1秒开始。

这是一个好方法吗?当我测试这个时,它起作用了。但我在想,这是一种很好的方法吗,因为一些流在被破坏的同时可以运行。

伪代码是例如

-at 13pm 00 minutes 00 seconds
      -run the flow for the customer X
-at 13pm 00 minutes 01 seconds
      -destroy all the flows (including the customer flow X)
      -register all the flows (including the customer flow X)
-at 13pm 01 minutes 01 seconds
      -destroy all the flows (including the customer flow X)
      -register all the flows (including the customer flow X)
-at 13pm 02 minutes 01 seconds
      -destroy all the flows (including the customer flow X)
      -register all the flows (including the customer flow X)
...
-at 13pm 59 minutes 01 seconds
      -destroy all the flows (including the customer flow X)
      -register all the flows (including the customer flow X)
-at 14pm 00 minutes 00 seconds
      -run the flow for the customer Y
-at 14pm 00 minutes 01 seconds
      -destroy all the flows (including the customer flow Y)
      -register all the flows (including the customer flow Y)

编辑:

这是必要的,因为如果数据库中的配置发生变化,我不想重新启动服务器。我在想这是一个好方法还是我应该改变它。

编辑2:

我可以简化我的问题。如果使用IntegrationFlowRegistration方法删除某个流,是否有任何问题。是否在运行时销毁?

编辑3:

我发现流不能用方法IntegrationFlowRegistration删除。运行时销毁。如果有多个流同时运行,则某些流不会运行到底。

是否有任何方法可以检测某些流是否正在运行?我查看了IntegrationFlowRegistration类和其他一些类,但没有找到合适的方法。

共有1个答案

方河
2023-03-14

我这样做是为了停止并销毁数据库中更改的流。所以我不会破坏那些没有改变的流。因此,不太可能删除正在运行的流。

 类似资料:
  • 我正在尝试做一个GroupBy基于共享ID的GeoJSON功能列表,以便通过使用拆分/聚合来聚合这些功能的单个字段,如下所示: 除非我取消对这三行的注释,否则聚合器永远不会发布组,数据库也不会收到任何更新。如果我将groupTimeout设置为小于5秒,则会丢失部分结果。 我预计发布策略默认为,我预计在处理完所有(拆分)功能后会自动释放所有组(REST服务消息中总共只有129个功能)。手动将其设置

  • 在spring integration (Java DSL)中,如何定义一个完整流程的事务? 通过Spring集成,我们可以定义一个示例流程: 我需要一个跨度整个流程的交易。目前,当我使用“aMessage转换器”访问数据库时,事务将在处理完此消息转换器后关闭。但是我需要一个在处理“另一个消息转换器”时仍未提交的事务? 我希望只需添加一个“@Transactional”(或@Transaction

  • 我有一个包含注销endpoint的Spring控制器 我如何使用mockmvc来测试这一点? 到目前为止,我只有这段代码,但我不知道如何测试该请求。已调用logout()(其效果如何?)。

  • 当msg处理抛出异常时,如何有效地支持JMS重新交付? 我有一个使用JMS(ActiveMQ)的流,它具有配置为允许n次重新传递尝试的连接工厂。 我希望在处理msg时出现任何错误,导致msg在connectionFactory配置允许的情况下被放回重新交付,然后在最大重新交付尝试用尽时,交付给DLQ。与AMQ保持一致。 对一个相关SO问题的回答意味着我可能会有一个重新抛出的错误通道,它应该触发重新

  • Spring是一个流行的Web框架,它提供易于集成与很多常见的网络任务。所以,问题是,为什么我们需要Spring,当我们有Struts2?Spring是超过一个MVC框架 - 它提供了许多其它好用的东西,这是不是在Struts。例如:依赖注入可以是有用的任何框架。在本章中,我们将通过一个简单的例子来看看如何集成Spring和Struts2一起。 首先,需要添加下列文件到项目的构建路径从Spring

  • 我正在尝试使用几个s-vaadin、jsp等实现一个应用程序。 它使用简单的,但后来我决定使用vaadin作为ui。 我创建了vaadin servlet(Spring的servlet也留下了)。我的看起来像这样 我创建了vaadin组件并根据我的需要对其进行了调整。我使用自动装配进行服务。 也是一个Spring bean。 < code>ProjectRepository是另一个spring b