def chain_render_docs(self, docs):
        tasks = []
        count = 0
        total = len(docs)
        n = int(ceil(total / 5))
        chunks = chunked(docs, n)

        for chunk in chunks:
            count += len(chunk)
            tasks.append(
                render_document_chunk.si(chunk, self.cache_control,
                                         self.base_url, self.options['force']))
            percent_complete = int(ceil((count / total) * 100))
            tasks.append(
                email_render_document_progress.si(percent_complete, total))

        # Make it so.
        chain(*tasks).apply_async()
Example #2
0
    def chain_render_docs(self, docs, cache_control, base_url, force,
                          invalidate_cdn_cache=False):
        tasks = []
        count = 0
        total = len(docs)
        n = int(ceil(total / 5))
        chunks = chunked(docs, n)

        for chunk in chunks:
            count += len(chunk)
            tasks.append(
                render_document_chunk.si(chunk, cache_control, base_url,
                                         force, invalidate_cdn_cache))
            percent_complete = int(ceil((count / total) * 100))
            tasks.append(
                email_document_progress.si('render_document', percent_complete,
                                           total))

        # Make it so.
        chain(*tasks).apply_async()