| author | Sandro Knauß <knauss@netzguerilla.net> |
| Fri, 08 Oct 2010 02:59:04 +0200 | |
| changeset 54 | 9774768ef3f0 |
| parent 48 | 32763e344d3b |
| child 55 | ae3669fef3b0 |
| permissions | -rw-r--r-- |
|
0
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
1 |
# -*- coding: utf-8 -*- |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
2 |
# Worker code |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
3 |
|
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
4 |
from multiprocessing import Process |
| 20 | 5 |
import logging |
|
23
0180b538ed74
logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents:
20
diff
changeset
|
6 |
logger = logging.getLogger("iro.worker") |
|
0
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
7 |
|
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
8 |
class Worker(Process): |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
9 |
def __init__(self,queue): |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
10 |
Process.__init__(self) |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
11 |
self.queue=queue |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
12 |
|
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
13 |
def run(self): |
| 20 | 14 |
id=0 |
|
0
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
15 |
while 1: |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
16 |
job=self.queue.get() |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
17 |
if job is None: |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
18 |
break # reached end of queue |
| 20 | 19 |
id+=1 |
|
23
0180b538ed74
logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents:
20
diff
changeset
|
20 |
logger.info('ein neuer Job(%d)' %(id)) |
| 20 | 21 |
try: |
|
48
32763e344d3b
job nun mit start(id), status() gibt list zurück, tests angepasst
Sandro Knauß <knauss@netzguerilla.net>
parents:
42
diff
changeset
|
22 |
job.start(id) |
|
23
0180b538ed74
logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents:
20
diff
changeset
|
23 |
logger.info('Job(%d) fertig ;)'%(id)) |
| 20 | 24 |
except: |
|
42
1a9f191389a4
test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents:
41
diff
changeset
|
25 |
job.setStatus("error") |
|
23
0180b538ed74
logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents:
20
diff
changeset
|
26 |
logger.exception('Job(%d) fehlgeschlagen :('%(id)) |
|
42
1a9f191389a4
test mit fehlschlagendem Job
Sandro Knauß <knauss@netzguerilla.net>
parents:
41
diff
changeset
|
27 |