Mercurial > piecrust2
comparison piecrust/baking/worker.py @ 900:bf65a1a6992a
bake: Add performance timers for pipeline jobs.
author | Ludovic Chabant <ludovic@chabant.com> |
---|---|
date | Sun, 23 Jul 2017 08:21:07 -0700 |
parents | d1095774bfcf |
children | 8adc27285d93 |
comparison
equal
deleted
inserted
replaced
899:e52e2dd08c96 | 900:bf65a1a6992a |
---|---|
42 app.env.fs_cache_only_for_main_page = True | 42 app.env.fs_cache_only_for_main_page = True |
43 | 43 |
44 stats = app.env.stats | 44 stats = app.env.stats |
45 stats.registerTimer("BakeWorker_%d_Total" % self.wid) | 45 stats.registerTimer("BakeWorker_%d_Total" % self.wid) |
46 stats.registerTimer("BakeWorkerInit") | 46 stats.registerTimer("BakeWorkerInit") |
47 self.timerScope = stats.timerScope | |
47 | 48 |
48 self.app = app | 49 self.app = app |
49 | 50 |
50 # Load previous record | 51 # Load previous record |
51 if self.ctx.previous_records_path: | 52 if self.ctx.previous_records_path: |
69 if nok_pp is not None and pname in nok_pp: | 70 if nok_pp is not None and pname in nok_pp: |
70 continue | 71 continue |
71 | 72 |
72 self.ppmngr.createPipeline(src) | 73 self.ppmngr.createPipeline(src) |
73 | 74 |
75 stats.registerTimer("PipelineJobs_%s" % pname, | |
76 raise_if_registered=False) | |
77 | |
74 stats.stepTimerSince("BakeWorkerInit", self._work_start_time) | 78 stats.stepTimerSince("BakeWorkerInit", self._work_start_time) |
75 | 79 |
76 def process(self, job): | 80 def process(self, job): |
77 item = job.content_item | 81 item = job.content_item |
78 logger.debug("Received job: %s@%s" % (job.source_name, item.spec)) | 82 logger.debug("Received job: %s@%s" % (job.source_name, item.spec)) |
79 | 83 |
80 ppinfo = self.ppmngr.getPipeline(job.source_name) | 84 ppinfo = self.ppmngr.getPipeline(job.source_name) |
81 pp = ppinfo.pipeline | 85 pp = ppinfo.pipeline |
82 | 86 |
83 runctx = PipelineJobRunContext(job, pp.record_name, | 87 with self.timerScope("PipelineJobs_%s" % pp.PIPELINE_NAME): |
84 self.record_histories) | 88 runctx = PipelineJobRunContext(job, pp.record_name, |
89 self.record_histories) | |
85 | 90 |
86 ppres = PipelineJobResult() | 91 ppres = PipelineJobResult() |
87 # For subsequent pass jobs, there will be a record entry given. For | 92 # For subsequent pass jobs, there will be a record entry given. |
88 # first pass jobs, there's none so we get the pipeline to create it. | 93 # For first pass jobs, there's none so we get the pipeline to |
89 ppres.record_entry = job.data.get('record_entry') | 94 # create it. |
90 if ppres.record_entry is None: | 95 ppres.record_entry = job.data.get('record_entry') |
91 ppres.record_entry = pp.createRecordEntry(job, runctx) | 96 if ppres.record_entry is None: |
92 pp.run(job, runctx, ppres) | 97 ppres.record_entry = pp.createRecordEntry(job, runctx) |
98 pp.run(job, runctx, ppres) | |
99 | |
93 return ppres | 100 return ppres |
94 | 101 |
95 def getStats(self): | 102 def getStats(self): |
96 stats = self.app.env.stats | 103 stats = self.app.env.stats |
97 stats.stepTimerSince("BakeWorker_%d_Total" % self.wid, | 104 stats.stepTimerSince("BakeWorker_%d_Total" % self.wid, |