comparison piecrust/environment.py @ 455:cb3446be44b7

bake: Abort "render first" jobs if we start using other pages. This prevents the baker from having one worker stuck on a very long job, like rendering the index page of a blog with lots and lots of posts.
author Ludovic Chabant <ludovic@chabant.com>
date Wed, 08 Jul 2015 22:51:29 -0700
parents 3b658190c02b
children 81d9c3a3a0b5
comparison
equal deleted inserted replaced
454:96d363e2da4b 455:cb3446be44b7
3 import contextlib 3 import contextlib
4 from piecrust.cache import MemCache 4 from piecrust.cache import MemCache
5 5
6 6
7 logger = logging.getLogger(__name__) 7 logger = logging.getLogger(__name__)
8
9
10 class AbortedSourceUseError(Exception):
11 pass
8 12
9 13
10 class ExecutionInfo(object): 14 class ExecutionInfo(object):
11 def __init__(self, page, render_ctx): 15 def __init__(self, page, render_ctx):
12 self.page = page 16 self.page = page
58 self.page_repository = MemCache() 62 self.page_repository = MemCache()
59 self.rendered_segments_repository = MemCache() 63 self.rendered_segments_repository = MemCache()
60 self.fs_caches = { 64 self.fs_caches = {
61 'renders': self.rendered_segments_repository} 65 'renders': self.rendered_segments_repository}
62 self.fs_cache_only_for_main_page = False 66 self.fs_cache_only_for_main_page = False
67 self.abort_source_use = False
63 self._default_layout_extensions = None 68 self._default_layout_extensions = None
64 self._timers = {} 69 self._timers = {}
65 70
66 @property 71 @property
67 def default_layout_extensions(self): 72 def default_layout_extensions(self):