Можно ли завершить уже запущенное отложенное задание с помощью Ruby Threading ?

Допустим, у меня в фоновом режиме выполняется delayed_job. Задачи можно планировать или запускать немедленно (некоторые из них являются длинными задачами, некоторые - нет)

Если задача слишком длинная, пользователь должен иметь возможность отменить ее. Возможно ли это в отложенной работе? Я проверил документы и, похоже, не могу найти метод завершения или что-то в этом роде. Они только позволяют отменить отложенное задание (таким образом отменяя все задачи ... Мне нужно просто отменить определенную запущенную задачу)

UPDATE Задачи можно планировать или запускать немедленно (некоторые из них являются длинными задачами, некоторые - нет)

Если задача слишком длинная, пользователь должен иметь возможность отменить ее. Возможно ли это в отложенной работе? Я проверил документы и, похоже, не могу найти метод завершения или что-то в этом роде. Они только позволяют отменить отложенное задание (таким образом отменяя все задачи ... Мне нужно просто отменить определенную запущенную задачу)

UPDATE Задачи можно планировать или запускать немедленно (некоторые из них являются длинными задачами, некоторые - нет)

Если задача слишком длинная, пользователь должен иметь возможность отменить ее. Возможно ли это в отложенной работе? Я проверил документы и, похоже, не могу найти метод завершения или что-то в этом роде. Они только предоставляют возможность отмены самого отложенного задания (таким образом отменяя все задачи ... Мне нужно просто отменить определенную запущенную задачу)

UPDATE Мой босс (кстати, отличный программист) предложил использовать Ruby Threading для этой нашей функции. Это возможно? Например, создание новых потоков для каждой задачи и завершение этого потока во время его работы?

что-то вроде:

t1 = Thread.new(task.run)
self.delay.t1.join (?) -- still reading on threads so correct me if im wrong

тогда, чтобы остановить его, я просто использую t1.stop (?), Снова не знаю

Возможно ли это ? Спасибо!

5
задан corroded 7 April 2011 в 04:48
поделиться