2016-08-10 8 views
0

У меня есть MVC и пакетное приложение Spring boot. Оба пакета и MVC разделяют уровни DAO и Service, поэтому они находятся в одном файле войны. Они развернуты на 4 облачных серверах, и для приложения пользовательского интерфейса настроен баланс нагрузки и vip. Таким образом, приложение MVC в порядке.Выполнять пакет только на одном сервере

Проблема заключается в том, что часть пакета я делаю FTP-файл на внешний сервер, а на внешний сервер FTP обрабатывает обработанный файл. Обработанный файл возвращается только к одному из четырех серверов. Поэтому я хочу, чтобы пакет запускался только на 1 сервере. Как я могу подавить пакет от выполнения на других серверах.

ответ

0

Решение становится проще, поскольку ваши 4 экземпляра работают на 4 разных облачных мониторах. Отправной точкой пакета может быть файл-опрос. Поэтому, если файл упал в опросный каталог на сервере 1, будет запущено пакетное задание на сервере 1. Другие экземпляры ничего не делают, поскольку на этом сервере нет файлов.

Вам необходимо интегрировать доплеровщик файлов до весенней партии. Что-то вроде этого - http://docs.spring.io/spring-batch/reference/html/springBatchIntegration.html

<int:channel id="inboundFileChannel"/> 
<int:channel id="outboundJobRequestChannel"/> 
<int:channel id="jobLaunchReplyChannel"/> 

<int-file:inbound-channel-adapter id="filePoller" 
channel="inboundFileChannel" 
directory="file:/tmp/myfiles/" 
filename-pattern="*.csv"> 
<int:poller fixed-rate="1000"/> 
</int-file:inbound-channel-adapter> 

<int:transformer input-channel="inboundFileChannel" 
output-channel="outboundJobRequestChannel">. <bean class="io.spring.sbi.FileMessageToJobRequest"> 
<property name="job" ref="personJob"/> 
<property name="fileParameterName" value="input.file.name"/> 
</bean> 
</int:transformer> 

<batch-int:job-launching-gateway request-channel="outboundJobRequestChannel" 
reply-channel="jobLaunchReplyChannel"/> 

0

Это может быть один из многих подходов, но способ достижения это сохранить значение в файле свойств и установите его значение Boolean верно

Теперь обработаем вашу партию, чтобы работать только, если значение свойств файла верно.

Таким образом, это дает вам гибкость в изменении сервера, с которым вы хотите обрабатывать пакетное задание.