Mercurial > piecrust2
comparison piecrust/serving/procloop.py @ 880:342e3ea24b5d
serve: Fix asset processing loop.
| author | Ludovic Chabant <ludovic@chabant.com> |
|---|---|
| date | Thu, 15 Jun 2017 22:55:32 -0700 |
| parents | d1095774bfcf |
| children | 7f1da7e7b154 |
comparison
equal
deleted
inserted
replaced
| 879:58ae026b4c31 | 880:342e3ea24b5d |
|---|---|
| 5 import queue | 5 import queue |
| 6 import logging | 6 import logging |
| 7 import itertools | 7 import itertools |
| 8 import threading | 8 import threading |
| 9 from piecrust import CONFIG_PATH, THEME_CONFIG_PATH | 9 from piecrust import CONFIG_PATH, THEME_CONFIG_PATH |
| 10 from piecrust.chefutil import format_timed_scope | |
| 10 from piecrust.pipelines.base import ( | 11 from piecrust.pipelines.base import ( |
| 11 PipelineJobCreateContext, PipelineJobRunContext, PipelineJobResult, | 12 PipelineJobCreateContext, PipelineJobRunContext, PipelineJobResult, |
| 12 PipelineManager) | 13 PipelineManager) |
| 13 from piecrust.pipelines.records import ( | 14 from piecrust.pipelines.records import ( |
| 14 MultiRecord, MultiRecordHistory) | 15 MultiRecord, MultiRecordHistory) |
| 149 if os.path.getmtime(path) > procinfo.last_bake_time: | 150 if os.path.getmtime(path) > procinfo.last_bake_time: |
| 150 logger.debug("Found modified asset: %s" % path) | 151 logger.debug("Found modified asset: %s" % path) |
| 151 found_new_or_modified = True | 152 found_new_or_modified = True |
| 152 break | 153 break |
| 153 if found_new_or_modified: | 154 if found_new_or_modified: |
| 154 self._runPipelines(procinfo.source) | 155 with format_timed_scope( |
| 156 logger, | |
| 157 "change detected, reprocessed '%s'." % | |
| 158 procinfo.source.name): | |
| 159 self._runPipelines(procinfo.source) | |
| 155 | 160 |
| 156 time.sleep(self.interval) | 161 time.sleep(self.interval) |
| 157 | 162 |
| 158 def _init(self): | 163 def _init(self): |
| 159 self._app = self.appfactory.create() | 164 self._app = self.appfactory.create() |
| 248 try: | 253 try: |
| 249 pp.run(job, runctx, ppres) | 254 pp.run(job, runctx, ppres) |
| 250 except Exception as e: | 255 except Exception as e: |
| 251 ppres.record_entry.errors.append(str(e)) | 256 ppres.record_entry.errors.append(str(e)) |
| 252 | 257 |
| 253 if ppres.next_pass_job is not None: | 258 if ppres.next_step_job is not None: |
| 254 logger.error("The processing loop for the server " | 259 logger.error("The processing loop for the server " |
| 255 "doesn't support multi-pass pipelines.") | 260 "doesn't support multi-step pipelines.") |
| 256 | 261 |
| 257 cr.addEntry(ppres.record_entry) | 262 cr.addEntry(ppres.record_entry) |
| 258 if not ppres.record_entry.success: | 263 if not ppres.record_entry.success: |
| 259 cr.success = False | 264 cr.success = False |
| 260 current_records.success = False | 265 current_records.success = False |
