如何 start/stop nt-aws:s3-inbound-channel-adapter 手动
How to start/stop nt-aws:s3-inbound-channel-adapter manually
如何自定义 start/stop aws s3 inbound-channel-adapter。我想最初设置 auto-startup="false" 并在服务器 starts.Looking 时手动启动,以获得类似于我们有以下文件入站通道适配器解决方案的解决方案。
inboundFileAdapterChannel.send(new GenericMessage("@'s3FilesChannelId.adapter'.start()"));
配置:
如果我对 s3 入站适配器通道尝试相同的方法。我收到以下错误
应用程序启动失败
描述:
一个组件需要一个名为 's3FilesChannelId.adapter' 的 bean,但找不到。
操作:
考虑在您的配置中定义一个名为 's3FilesChannelId.adapter' 的 bean。
假设我们有这样的通道适配器:
<int-aws:s3-inbound-channel-adapter id="s3Inbound"
channel="s3Channel"
session-factory="s3SessionFactory"
auto-create-local-directory="true"
auto-startup="false"
delete-remote-files="true"
preserve-timestamp="true"
filename-pattern="*.txt"
local-directory="."
remote-file-separator="\"
local-filename-generator-expression="#this.toUpperCase() + '.a' + @fooString"
comparator="comparator"
temporary-file-suffix=".foo"
local-filter="acceptAllFilter"
remote-directory-expression="'foo/bar'">
<int:poller fixed-rate="1000"/>
</int-aws:s3-inbound-channel-adapter>
注意 auto-startup="false"
和 id="s3Inbound"
。
因此,它不会在应用程序上下文初始化后自动启动。
但是,使用那个 s3Inbound
id,我们可以在方便的时候手动执行此操作。
你关于 inboundFileAdapterChannel
的故事虽然不清楚,但你仍然可以为提到的通道适配器注入 Lifecycle
并执行它的 start()
:
@Autowired
@Qualifier("s3Inbound")
private Lifecycle s3Inbound;
...
this.s3Inbound.start();
关于 inboundFileAdapterChannel
的代码片段似乎是对 Control Bus
方法的引用,但这已经略有不同:https://docs.spring.io/spring-integration/docs/current/reference/html/system-management-chapter.html#control-bus
如何自定义 start/stop aws s3 inbound-channel-adapter。我想最初设置 auto-startup="false" 并在服务器 starts.Looking 时手动启动,以获得类似于我们有以下文件入站通道适配器解决方案的解决方案。
inboundFileAdapterChannel.send(new GenericMessage("@'s3FilesChannelId.adapter'.start()"));
配置:
如果我对 s3 入站适配器通道尝试相同的方法。我收到以下错误
应用程序启动失败
描述:
一个组件需要一个名为 's3FilesChannelId.adapter' 的 bean,但找不到。
操作:
考虑在您的配置中定义一个名为 's3FilesChannelId.adapter' 的 bean。
假设我们有这样的通道适配器:
<int-aws:s3-inbound-channel-adapter id="s3Inbound"
channel="s3Channel"
session-factory="s3SessionFactory"
auto-create-local-directory="true"
auto-startup="false"
delete-remote-files="true"
preserve-timestamp="true"
filename-pattern="*.txt"
local-directory="."
remote-file-separator="\"
local-filename-generator-expression="#this.toUpperCase() + '.a' + @fooString"
comparator="comparator"
temporary-file-suffix=".foo"
local-filter="acceptAllFilter"
remote-directory-expression="'foo/bar'">
<int:poller fixed-rate="1000"/>
</int-aws:s3-inbound-channel-adapter>
注意 auto-startup="false"
和 id="s3Inbound"
。
因此,它不会在应用程序上下文初始化后自动启动。
但是,使用那个 s3Inbound
id,我们可以在方便的时候手动执行此操作。
你关于 inboundFileAdapterChannel
的故事虽然不清楚,但你仍然可以为提到的通道适配器注入 Lifecycle
并执行它的 start()
:
@Autowired
@Qualifier("s3Inbound")
private Lifecycle s3Inbound;
...
this.s3Inbound.start();
关于 inboundFileAdapterChannel
的代码片段似乎是对 Control Bus
方法的引用,但这已经略有不同:https://docs.spring.io/spring-integration/docs/current/reference/html/system-management-chapter.html#control-bus