@@ -32,6 +32,9 def multiSchain(child, nProcess=cpu_count(), startDate=None, endDate=None, recei | |||||
32 | nFiles = None |
|
32 | nFiles = None | |
33 | processes = [] |
|
33 | processes = [] | |
34 |
|
34 | |||
|
35 | ||||
|
36 | ||||
|
37 | ||||
35 | dt1 = datetime.datetime.strptime(startDate, '%Y/%m/%d') |
|
38 | dt1 = datetime.datetime.strptime(startDate, '%Y/%m/%d') | |
36 | dt2 = datetime.datetime.strptime(endDate, '%Y/%m/%d') |
|
39 | dt2 = datetime.datetime.strptime(endDate, '%Y/%m/%d') | |
37 | days = (dt2 - dt1).days |
|
40 | days = (dt2 - dt1).days | |
@@ -47,29 +50,24 def multiSchain(child, nProcess=cpu_count(), startDate=None, endDate=None, recei | |||||
47 | nFiles = q.get() |
|
50 | nFiles = q.get() | |
48 | firstProcess.terminate() |
|
51 | firstProcess.terminate() | |
49 | skip = int(math.ceil(nFiles/nProcess)) |
|
52 | skip = int(math.ceil(nFiles/nProcess)) | |
50 |
|
|
53 | while True: | |
51 | while True: |
|
54 | processes.append(Process(target=child, args=(cursor, skip, q, dt))) | |
52 | processes.append(Process(target=child, args=(cursor, skip, q, dt))) |
|
55 | processes[cursor].start() | |
53 | processes[cursor].start() |
|
56 | if nFiles < cursor*skip: | |
54 | if nFiles < cursor*skip: |
|
57 | break | |
55 | break |
|
58 | cursor += 1 | |
56 | cursor += 1 |
|
59 | ||
57 | except KeyboardInterrupt: |
|
60 | def beforeExit(exctype, value, trace): | |
58 | for process in processes: |
|
61 | for process in processes: | |
59 | process.terminate() |
|
62 | process.terminate() | |
60 | process.join() |
|
63 | process.join() | |
61 | for process in processes: |
|
64 | sys.excepthook = beforeExit | |
62 | process.join() |
|
|||
63 | # process.terminate() |
|
|||
64 | sleep(3) |
|
|||
65 |
|
65 | |||
66 | try: |
|
|||
67 | while True: |
|
|||
68 | pass |
|
|||
69 | except KeyboardInterrupt: |
|
|||
70 | for process in processes: |
|
66 | for process in processes: | |
71 | process.terminate() |
|
|||
72 | process.join() |
|
67 | process.join() | |
|
68 | process.terminate() | |||
|
69 | ||||
|
70 | ||||
73 |
|
71 | |||
74 | class ParameterConf(): |
|
72 | class ParameterConf(): | |
75 |
|
73 | |||
@@ -438,8 +436,8 class OperationConf(): | |||||
438 |
|
436 | |||
439 | def createObject(self, plotter_queue=None): |
|
437 | def createObject(self, plotter_queue=None): | |
440 |
|
438 | |||
441 |
|
439 | |||
442 |
if self.type == 'self': |
|
440 | if self.type == 'self': | |
443 | raise ValueError, "This operation type cannot be created" |
|
441 | raise ValueError, "This operation type cannot be created" | |
444 |
|
442 | |||
445 | if self.type == 'plotter': |
|
443 | if self.type == 'plotter': | |
@@ -450,10 +448,10 class OperationConf(): | |||||
450 | opObj = Plotter(self.name, plotter_queue) |
|
448 | opObj = Plotter(self.name, plotter_queue) | |
451 |
|
449 | |||
452 | if self.type == 'external' or self.type == 'other': |
|
450 | if self.type == 'external' or self.type == 'other': | |
453 |
|
451 | |||
454 | className = eval(self.name) |
|
452 | className = eval(self.name) | |
455 | kwargs = self.getKwargs() |
|
453 | kwargs = self.getKwargs() | |
456 |
|
454 | |||
457 | opObj = className(**kwargs) |
|
455 | opObj = className(**kwargs) | |
458 |
|
456 | |||
459 | return opObj |
|
457 | return opObj | |
@@ -672,18 +670,18 class ProcUnitConf(): | |||||
672 | kwargs = self.getKwargs() |
|
670 | kwargs = self.getKwargs() | |
673 | procUnitObj = className(**kwargs) |
|
671 | procUnitObj = className(**kwargs) | |
674 |
|
672 | |||
675 |
for opConfObj in self.opConfObjList: |
|
673 | for opConfObj in self.opConfObjList: | |
676 |
|
674 | |||
677 | if opConfObj.type=='self' and self.name=='run': |
|
675 | if opConfObj.type=='self' and self.name=='run': | |
678 | continue |
|
676 | continue | |
679 |
elif opConfObj.type=='self': |
|
677 | elif opConfObj.type=='self': | |
680 | procUnitObj.addOperationKwargs(opConfObj.id, **opConfObj.getKwargs()) |
|
678 | procUnitObj.addOperationKwargs(opConfObj.id, **opConfObj.getKwargs()) | |
681 | continue |
|
679 | continue | |
682 |
|
680 | |||
683 | opObj = opConfObj.createObject(plotter_queue) |
|
681 | opObj = opConfObj.createObject(plotter_queue) | |
684 |
|
682 | |||
685 | self.opObjDict[opConfObj.id] = opObj |
|
683 | self.opObjDict[opConfObj.id] = opObj | |
686 |
|
684 | |||
687 | procUnitObj.addOperation(opObj, opConfObj.id) |
|
685 | procUnitObj.addOperation(opObj, opConfObj.id) | |
688 |
|
686 | |||
689 | self.procUnitObj = procUnitObj |
|
687 | self.procUnitObj = procUnitObj |
@@ -1,1 +1,1 | |||||
1 | <Project description="Segundo Test" id="191" name="test01"><ProcUnit datatype="ReceiverData" id="1911" inputId="0" name="ReceiverData"><Operation id="19111" name="run" priority="1" type="self"><Parameter format="bool" id="191111" name="realtime" value="1" /><Parameter format="str" id="191112" name="plottypes" value="rti" /><Parameter format="str" id="191113" name="plot_server" value="tcp://10.10.10.82:7000" /></Operation></ProcUnit></Project> No newline at end of file |
|
1 | <Project description="HF_EXAMPLE" id="191" name="test01"><ReadUnit datatype="SpectraReader" id="1911" inputId="0" name="SpectraReader"><Operation id="19111" name="run" priority="1" type="self"><Parameter format="str" id="191111" name="datatype" value="SpectraReader" /><Parameter format="str" id="191112" name="path" value="/home/nanosat/data/hysell_data20/pdata" /><Parameter format="date" id="191113" name="startDate" value="2015/09/26" /><Parameter format="date" id="191114" name="endDate" value="2015/09/26" /><Parameter format="time" id="191115" name="startTime" value="00:00:00" /><Parameter format="time" id="191116" name="endTime" value="23:59:59" /><Parameter format="int" id="191118" name="cursor" value="33" /><Parameter format="int" id="191119" name="skip" value="22" /><Parameter format="int" id="191120" name="delay" value="10" /><Parameter format="int" id="191121" name="walk" value="1" /><Parameter format="int" id="191122" name="online" value="0" /></Operation></ReadUnit><ProcUnit datatype="Spectra" id="1912" inputId="1911" name="SpectraProc"><Operation id="19121" name="run" priority="1" type="self" /><Operation id="19122" name="PublishData" priority="2" type="other"><Parameter format="int" id="191221" name="zeromq" value="1" /><Parameter format="int" id="191222" name="delay" value="1" /></Operation></ProcUnit></Project> No newline at end of file |
General Comments 0
You need to be logged in to leave comments.
Login now