2012-10-24 2 views
0

Я ищу способ указать продолжительность выполнения конкретной задачи - например, конкретная задача очистки файлов может не работать более 2 минут. Если он заканчивается менее 2 минут - отлично, но он должен заканчиваться через 2 минуты.Есть ли способ указать продолжительность выполнения задачи с использованием библиотеки Quartz

Имеет ли Кварц или любую другую библиотеку эффективный способ сделать это?

+0

Каким образом вы ожидаете прекращения потока? Предпочтительным способом завершения потока является мирное завершение вашей программной логики. например флаг, указывающий на то, что мы должны выпрыгнуть из цикла и т. д. Поэтому практически для любого, кроме вас самих, практически невозможно «прекратить» вашу нить. У вас есть другой поток, подождите 2 минуты и выполните работу по завершению. –

ответ

1

В кварце такой функции нет. Вам нужно будет инкапсулировать «диспетчер тайм-аута» в вашей работе.

Вы должны отделить фактическую реализацию задания в отдельной Задаче, которой управляет Кварцевое задание.

Посмотрите на этот пример: https://stackoverflow.com/a/2275596/1517816

Предположим, ваш QuartzJob класс Test и перемещать бизнес-логику в классе задач.

Надеюсь, это поможет