Ниже то, что я полагаю, что соответствующая документация с сайта Spring:Как создать простой Spring запланированное задание
34.2.2 Использование реализаций TaskExecutor TaskExecutor Spring, используются в качестве простых JavaBeans. В приведенном ниже примере мы определяем компонент, который использует метод ThreadPoolTaskExecutor для асинхронной печати набора сообщений.
import org.springframework.core.task.TaskExecutor;
public class TaskExecutorExample {
private class MessagePrinterTask implements Runnable {
private String message;
public MessagePrinterTask(String message) {
this.message = message;
}
public void run() {
System.out.println(message);
}
}
private TaskExecutor taskExecutor;
public TaskExecutorExample(TaskExecutor taskExecutor) {
this.taskExecutor = taskExecutor;
}
public void printMessages() {
for(int i = 0; i < 25; i++) {
taskExecutor.execute(new MessagePrinterTask("Message" + i));
}
}
}
Как вы можете видеть, вместо извлечения нити из пула и выполнения себя, вы добавить свой Runnable в очередь и TaskExecutor использует свои внутренние правила, чтобы решить, когда задача запускается на выполнение.
Чтобы настроить правила, используемые TaskExecutor, были открыты простые свойства bean-компонента.
<bean id="taskExecutor" class="org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor">
<property name="corePoolSize" value="5" />
<property name="maxPoolSize" value="10" />
<property name="queueCapacity" value="25" />
</bean>
<bean id="taskExecutorExample" class="TaskExecutorExample">
<constructor-arg ref="taskExecutor" />
</bean>
Я буду иметь дело с триггером в конечном счете, потому что я хочу сделать что-то каждый N часов/минут, но на данный момент я все еще смотрел на этот пример. Как выполняется метод printMessages()
? Я не вижу нигде в конфигурации или код, который упоминает об этом.
Кстати, это весь подраздел из документации: «34.2.2 Использование TaskExecutor»
Вы хотите знать, как Spring вызывает метод или как вы можете вызвать метод в своем приложении? – george
@george как настроить - как Spring вызывает это было бы интересно, но, вероятно, не нужно. Думал, что название послужит указанием на то, что я хотел, но вижу, что я задал вопрос в замешательстве в теле. – arcy