Запустите функцию очистки в Python, когда задание Дженкинса прерываетсяPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Запустите функцию очистки в Python, когда задание Дженкинса прерывается

Сообщение Anonymous »

Я написал скрипт на Python, который работает некоторое время и регулярно выполняет очистку, как только завершает работу, например:

Код: Выделить всё

import time

def cleanUp():
#delete some temporary files and so on
print("Clean up done")

if __name__=="__main__":
startTime = time.time()
while time.time() - startTime < 60:
# Performing some commands
print("Still running")

cleanUp()
Я запускаю этот код как задание Jenkins. Чтобы очистить несмотря ни на что, то есть даже когда я прерываю задание Дженкинса, я использовал signal.signal. Исследование сигнала, отправляемого Дженкинсом для завершения задания (https://gist.github.com/datagrok/dfe9604cb907523f4a2f), привело
к тому, что Дженкинс отправляет сигнал «TERM» после остановки процесса. Поэтому я добавил следующее + механизм контроля, чтобы увидеть, работает ли он, поскольку Дженкинс не будет показывать остальную часть журнала после остановки задания (сразу покажет «ПРЕРВАНО», см. ссылку):

Код: Выделить всё

import time
import signal

def cleanUp():
#delete some temporary files and so on
print("Clean up done")
# Write some text to a file, to see if this part was actually run
with open(r"C:\temp\abx.txt", 'w') as file:
file.write("Process has been finished prematurely")

signal.signal(signal.SIGTERM, cleanUp)

if __name__=="__main__":
startTime = time.time()
while time.time() - startTime < 60:
# Performing some commands
print("Still running")

cleanUp()
К сожалению, я не могу найти «управляющий» файл в C:\temp компьютера, на котором выполняется задание Jenkins.
Мой вопрос: правильно ли использовать signal.signal(signal.SIGTERM, cleanUp) (или мне следует использовать что-то другое?) или я допустил ошибку при использовании signal.signal ?
Я также пытался зарегистрировать cleanUp с помощью atexit, но это тоже не дало тех результатов, на которые я надеялся.
Спасибо много!

Подробнее здесь: https://stackoverflow.com/questions/782 ... is-aborted
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»