coding utf-8 import signal sys time def handle signum frame print Alar

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#-*- coding: utf-8 -*-
import signal, sys, time
def handle(signum, frame):
print 'Alarm! job failed'
sys.exit(1)
def job(n):
data=[]
for x in xrange(n):
data.append(x**2)
time.sleep(0.1)
signal.signal(signal.SIGALRM, handle)
# Имитация простой работы, которая будет выполнена успешно
signal.alarm(3)
job(10)
print 'Job 1 done'
signal.alarm(0)
# Имитация объемной работы, которая не будет успешно выполнена
signal.alarm(3)
job(100)
print 'Job 2 done'
signal.alarm(0)