| author | Sandro Knauß <knauss@netzguerilla.net> |
| Fri, 27 Nov 2009 01:09:34 +0100 | |
| changeset 23 | 0180b538ed74 |
| parent 20 | 0d7ffb9b2c7f |
| child 41 | 02e9b54ef4f0 |
| 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 |
import time |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
8 |
|
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
9 |
class Worker(Process): |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
10 |
def __init__(self,queue): |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
11 |
Process.__init__(self) |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
12 |
self.queue=queue |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
13 |
|
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
14 |
def run(self): |
|
23
0180b538ed74
logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents:
20
diff
changeset
|
15 |
logger.info('Worker thread läuft nun...') |
| 20 | 16 |
id=0 |
|
0
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
17 |
while 1: |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
18 |
job=self.queue.get() |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
19 |
if job is None: |
|
a3b6e531f0d2
[svn r93] creating iro package branch
Sandro Knauß <knauss@netzguerilla.net>
parents:
diff
changeset
|
20 |
break # reached end of queue |
| 20 | 21 |
id+=1 |
|
23
0180b538ed74
logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents:
20
diff
changeset
|
22 |
logger.info('ein neuer Job(%d)' %(id)) |
| 20 | 23 |
try: |
24 |
job.start(id) |
|
|
23
0180b538ed74
logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents:
20
diff
changeset
|
25 |
logger.info('Job(%d) fertig ;)'%(id)) |
| 20 | 26 |
except: |
|
23
0180b538ed74
logging->logger wg. multiprocessing
Sandro Knauß <knauss@netzguerilla.net>
parents:
20
diff
changeset
|
27 |
logger.exception('Job(%d) fehlgeschlagen :('%(id)) |