Форум программистов
 
Регистрация на форуме тут, о проблемах пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail, а тут можно восстановить пароль

Вернуться   Форум программистов > Java программирование > Общие вопросы по Java, Java SE, Kotlin
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме 15-35 тыс рублей в месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2018, 14:50   #1
javanoobie
Пользователь
 
Регистрация: 15.01.2018
Сообщений: 12
По умолчанию Scheduler (spring) , как сделать on/off выключатель для таски

Всем Привет,
Не могу понять как сделать метод в контроллере POST /activte который обновит таску по id с бд и поставит ей active = true и тоже самое /deactivate ;и как в скедулере профильтровать те которые active=true?
Битый час вожусь,надеюсь кто то подскажет ;

Controller

Код:
@Autowired
    private MonitorRepository monitorRepository;
 
    @RequestMapping(value = "/{id}", method = RequestMethod.GET)
    @ResponseStatus(HttpStatus.OK)
    public Monitor getMonitor(@PathVariable("id") Long id) {
        return monitorRepository.findOne(id);
    }
 
    @ResponseStatus(HttpStatus.NO_CONTENT)
    @RequestMapping(value = "/add", method = RequestMethod.POST,headers = "Accept=application/json")
    public void addMonitor(@RequestBody Monitor monitor) {
        monitorRepository.save(monitor);
        System.out.print(monitor);
 
 
    }
Scheduler
Код:
@Autowired
    private MonitorRepository monitorRepository;
    public List<Monitor> findAll(){
        return monitorRepository.findAll();
    }
 
 
 
    @Scheduled(fixedRate = 1000)
    public void scheduleFixedRateTask() throws IOException {
    List<Monitor> tasks = monitorRepository.findAll();
    for (Monitor monitor : tasks){
 
        HttpClient client = HttpClientBuilder.create().build();
        HttpGet request = new HttpGet(monitor.getUrl());
        HttpResponse response = client.execute(request);
        Monitor.MonitoringStatus status = OK;
        if(response.getStatusLine().getStatusCode() != monitor.getExceptedHttpResponseCode()){
            status = CRITICAL;
 
        }
        monitor.setStatus(status);
        monitorRepository.save(monitor);
        System.out.println(monitor.getUrl() + response.getStatusLine().getStatusCode() + "--" + monitor.getExceptedHttpResponseCode() );
 
    }
 
}
 
}
javanoobie вне форума Ответить с цитированием
Старый 15.01.2018, 16:10   #2
javanoobie
Пользователь
 
Регистрация: 15.01.2018
Сообщений: 12
По умолчанию

эй,есть кто???
javanoobie вне форума Ответить с цитированием
Старый 15.01.2018, 16:54   #3
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Я бы завел значение, которое впрыскивал в job.
Или так можно.
Можно так.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 15.01.2018, 16:57   #4
javanoobie
Пользователь
 
Регистрация: 15.01.2018
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Скарам Посмотреть сообщение
Я бы завел значение, которое впрыскивал в job.
Или так можно.
Можно так.
но мне нужно отдельным реквестом для бд,что бы смог потом в фронте мог включить или выключить таску
javanoobie вне форума Ответить с цитированием
Старый 15.01.2018, 17:06   #5
Скарам
Дружите с Linq ;)
Форумчанин
 
Аватар для Скарам
 
Регистрация: 15.10.2008
Сообщений: 822
По умолчанию

Делаешь с фронта запрос, меняешь значение переменной на сервере и записываешь новое значение в бд. Если серверов много, постишь в бд+messagebus, с помощью которого общаются сервера или постишь в бд+делаешь нотификацию на это значение на всех серверах средствами бд. После того, как сервера получили нотификацию ( сообщение о том, что надо отключить таски), они отключают таски.
Не давай организму поблажки, каждый день тренируй его в шашки..
Скарам вне форума Ответить с цитированием
Старый 15.01.2018, 17:30   #6
javanoobie
Пользователь
 
Регистрация: 15.01.2018
Сообщений: 12
По умолчанию

понял , спасибо!
javanoobie вне форума Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как сделать бой как в tiwar.ru? Как сделать что бы результат боя зависел от характеристик персонажа? Каким ЯП для этого пользоваться? Bodia_andr Помощь студентам 0 13.09.2017 22:30
Есть утилита CURL PHP, а вот как сделать, чтобы она заработала в командной строке? сделать расширение для Файрфокса под Windows vinniepooh PHP 2 24.07.2016 21:01
Как работать с бинами в Spring (язык Java)? _Александр Java для Web (EE, Servlet, JSP, Tomcat, Spring MVC) 0 04.04.2014 12:04
Хочу сделать форму для ввода паролей! Для этого текст должен быть зашифрован в (*****) ! Как сделать vitaaly Visual C++ 2 12.02.2011 12:29