Ejemplo n.º 1
0
 def run(self):
     if self.time_since_last_tracking is None or time.time() - self.time_since_last_tracking >= FramesFileProcessor.frame_tracking_interval:
         logger.info("Starting tracking")
         self.track_frames()
         logger.info("Finished tracking")
         self.time_since_last_tracking = time.time()
     stacks = self.get_valid_stacks_from_queue()
     logger.debug(f'{len(stacks)} in queue for {self.session.name}')
     stacks = self.filter_for_most_recent_stacks(stacks)
         
     if ResourceManager.request_cpus(FramesFileProcessor.required_cpus):
         for stack in stacks:
             self.queued.remove(stack)
         process_thread = Thread(
                 target=self.process_frames,
                 args=([stacks])
             )
         process_thread.start()
Ejemplo n.º 2
0
    def run(self):
        if self.time_since_last_tracking is None or time.time(
        ) - self.time_since_last_tracking >= MontageProcessor.tracking_interval:
            self.sync_with_db()
            self.time_since_last_tracking = time.time()

        if self.queue.empty():
            return

        if ResourceManager.request_cpus(MontageProcessor.required_cpus):
            try:
                montage = self.queue.get()
                process_thread = Thread(target=self.process_montage,
                                        args=[montage])
                process_thread.start()
            except Exception as e:
                ResourceManager.release_cpus(MontageProcessor.required_cpus)
                self.queue.put(montage)
                LOG.exception(e)
Ejemplo n.º 3
0
    def run(self):
        if self.time_since_last_tracking is None or time.time() - self.time_since_last_tracking >= DogpickerProcessor.tracking_interval:
            self.update_tracked_data()
            self.time_since_last_tracking = time.time()

        if len(self.queued) == 0:
            return

        if ResourceManager.request_cpus(DogpickerProcessor.required_cpus):
            try:
                motion_correction_data = self.queued.pop()
                acquisition_data = AcquisitionData(motion_correction_data.base_name)
                acquisition_data.fetch(self.session.db)
                process_thread = Thread(
                    target=self.process_data,
                    args=(acquisition_data, motion_correction_data)
                )
                process_thread.start()
            except:
                ResourceManager.release_cpus(DogpickerProcessor.required_cpus)