【发布时间】:2016-06-17 14:51:24
【问题描述】:
我正在使用一个已经使用线程运行的 bpmn 进程,并且还使用了运行任务调度程序线程的 spring ftp,但我发现应用程序无法从线程切换。有什么方法可以在没有任何中断的情况下调用任务调度程序进程,我正在使用 InboundchannelAdapter 从 FTP 复制文件。请提出任何可行的方法来解决此问题。
【问题讨论】:
标签: spring-integration spring-integration-sftp
我正在使用一个已经使用线程运行的 bpmn 进程,并且还使用了运行任务调度程序线程的 spring ftp,但我发现应用程序无法从线程切换。有什么方法可以在没有任何中断的情况下调用任务调度程序进程,我正在使用 InboundchannelAdapter 从 FTP 复制文件。请提出任何可行的方法来解决此问题。
【问题讨论】:
标签: spring-integration spring-integration-sftp
我认为您的问题没有任何问题。老实说,这还不清楚。
请说得更具体一些,有时分享一些代码/config/logs/stack-trace 真的很有用。更多信息,更多机会获得快速正确的答案。
我猜你的问题是你从 FTP 下载文件并在同一个线程中运行一个 BPM 进程,该进程最终可能会阻塞等待某些参与者操作。
为此,您应该将 <poller> 上的 Spring Integration 流程转移到不同的线程,并且不要窃取任务调度程序资源。对于整个系统来说,它们真的非常昂贵。考虑为<poller> 上的task-executor 引用使用足够大的ThreadPoolTaskExecutor。还有一个ExecutorChannel 为您提供类似的线程转换功能。
【讨论】:
http-nio-8082-exec-3 告诉我它与来自 Web 的一些用户请求有关,同时轮询器的进程(FTP 入站通道适配器)是独立的并且永远工作。这就是当文件从本地 FTP 出现时您可能没有 BPM 流程的原因。
startProcessInstanceByKey 在单独的线程中完成其工作,而不是 BPM 启动的线程...