Skip to content
Closed
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 20 additions & 19 deletions PYME/Acquire/HTTPSpooler.py
Original file line number Diff line number Diff line change
Expand Up @@ -236,6 +236,26 @@ def StartSpool(self):
else:
clusterIO.put_file(self.seriesName + '/metadata.json', self.md.to_JSON().encode(), serverfilter=self.clusterFilter)

def doStopLog(self):
sp.Spooler.doStopLog(self)
# save events and final metadata
# TODO - use a binary format for saving events - they can be quite
# numerous, and can trip the standard 1 s clusterIO.put_file timeout.
# Use long timeouts as a temporary hack because failing these can ruin
# a dataset
if self._aggregate_h5:
clusterIO.put_file('__aggregate_h5/' + self.seriesName + '/final_metadata.json',
self.md.to_JSON().encode(), self.clusterFilter)
clusterIO.put_file('__aggregate_h5/' + self.seriesName + '/events.json',
self.evtLogger.to_JSON().encode(),
self.clusterFilter, timeout=10)
else:
clusterIO.put_file(self.seriesName + '/final_metadata.json',
self.md.to_JSON().encode(), self.clusterFilter)
clusterIO.put_file(self.seriesName + '/events.json',
self.evtLogger.to_JSON().encode(),
self.clusterFilter, timeout=10)

def StopSpool(self):
sp.Spooler.StopSpool(self)

Expand All @@ -258,25 +278,6 @@ def StopSpool(self):
# remove our reference to the threads which hold back-references preventing garbage collection
del(self._pollThreads)

# save events and final metadata
# TODO - use a binary format for saving events - they can be quite
# numerous, and can trip the standard 1 s clusterIO.put_file timeout.
# Use long timeouts as a temporary hack because failing these can ruin
# a dataset
if self._aggregate_h5:
clusterIO.put_file('__aggregate_h5/' + self.seriesName + '/final_metadata.json',
self.md.to_JSON().encode(), self.clusterFilter)
clusterIO.put_file('__aggregate_h5/' + self.seriesName + '/events.json',
self.evtLogger.to_JSON().encode(),
self.clusterFilter, timeout=10)
else:
clusterIO.put_file(self.seriesName + '/final_metadata.json',
self.md.to_JSON().encode(), self.clusterFilter)
clusterIO.put_file(self.seriesName + '/events.json',
self.evtLogger.to_JSON().encode(),
self.clusterFilter, timeout=10)


def OnFrame(self, sender, frameData, **kwargs):
# NOTE: copy is now performed in frameWrangler, so we don't need to worry about it here
if frameData.shape[0] == 1:
Expand Down