Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java EE (J2EE) и Spring > Фоновые процессы для Spring веб-приложения


Автор: Andrey1 15.3.2013, 14:24
Необходимо сделать фоновые процессы для Spring веб-приложения, которые стартуют вместе с Spring контекстом и делают свое дело. Не могу найти конфигу для такого класса. Может кто знает?

Автор: Andrey1 15.3.2013, 15:52
spring batch? http://static.springsource.org/spring-batch/reference/html/

Автор: batigoal 17.3.2013, 22:32
Не понял - имеется в виду context listener для спринга?

Автор: Andrey1 18.3.2013, 10:42
Цитата(batigoal @  17.3.2013,  22:32 Найти цитируемый пост)
Не понял - имеется в виду context listener для спринга? 

Да, процесс (в отдельном Thread) должен стартовать вместе со стартом Spring контейнера и жить все время, обмениваясь данными через общие объекты.

Я так понял, нужно юзать TaskExecutor или @Async.

Автор: batigoal 18.3.2013, 12:11
Там есть именно context listener. Пример: http://stackoverflow.com/a/8687676. Если этого достаточно, то велосипед изобретать не придется.

Автор: Andrey1 18.3.2013, 13:47
Я нашел самое простое решение видимо - унаследоваться от Thread и поднять этот бин.

Код

        <bean id="process1Thread"
          class="com.ap.thread.Process1Thread"
          lazy-init="false"
        >
        </bean>


Код

public class Process1Thread extends Thread {

    public Process1Thread()
    {
        this.start();
    }
    
    @Override
    public void run()
    {

        for (int i = 1; i <= 10; i++)
        {
            System.out.println(this.getClass().toString() + " is running. Waiting!!!!!");
            try
            {
                Thread.sleep(5000);
            } catch (InterruptedException e)
            {
                e.printStackTrace();
            }
        }
    }


А периодические процессы запускать по таймеру через ScheduledTimerTask

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)