def do_render(self, doc): # Skip very recently rendered documents. This should help make it # easier to start and stop an --all command without needing to start # from the top of the list every time. if doc.last_rendered_at: now = datetime.datetime.now() render_age = now - doc.last_rendered_at min_age = datetime.timedelta(seconds=self.options['min_age']) if (render_age < min_age): logging.debug(u"Skipping %s (%s) - rendered %s sec ago" % (doc, doc.get_absolute_url(), render_age)) return if self.options['force']: doc.render_started_at = None if self.options['nocache']: cc = 'no-cache' else: cc = 'max-age=0' if self.options['defer']: logging.info(u"Queuing deferred render for %s (%s)" % (doc, doc.get_absolute_url())) render_document.delay(doc.pk, cc, self.base_url) logging.debug(u"Queued.") else: logging.info(u"Rendering %s (%s)" % (doc, doc.get_absolute_url())) try: render_document(doc, cc, self.base_url) logging.debug(u"DONE.") except DocumentRenderingInProgress: logging.error( u"Rendering is already in progress for this document")
def do_render(self, doc): # Skip very recently rendered documents. This should help make it # easier to start and stop an --all command without needing to start # from the top of the list every time. if doc.last_rendered_at: now = datetime.datetime.now() render_age = now - doc.last_rendered_at min_age = datetime.timedelta(seconds=self.options['min_age']) if (render_age < min_age): logging.debug(u"Skipping %s (%s) - rendered %s sec ago" % (doc, doc.get_absolute_url(), render_age)) return if self.options['force']: doc.render_started_at = None if self.options['nocache']: cc = 'no-cache' else: cc = 'max-age=0' if self.options['defer']: logging.info(u"Queuing deferred render for %s (%s)" % (doc, doc.get_absolute_url())) render_document.delay(doc.pk, cc, self.base_url) logging.debug(u"Queued.") else: logging.info(u"Rendering %s (%s)" % (doc, doc.get_absolute_url())) try: render_document(doc, cc, self.base_url) logging.debug(u"DONE.") except DocumentRenderingInProgress: logging.error(u"Rendering is already in progress for this document")
def handle(self, *args, **options): base_url = options['baseurl'] if not base_url: from django.contrib.sites.models import Site site = Site.objects.get_current() base_url = 'http://%s' % site.domain path = args[0] if path.startswith('/'): path = path[1:] locale, sep, slug = path.partition('/') head, sep, tail = slug.partition('/') if head == 'docs': slug = tail doc = Document.objects.get(locale=locale, slug=slug) if options['force']: doc.render_started_at = None if options['nocache']: cc = 'no-cache' else: cc = 'max-age=0' if options['defer']: logging.info("Queuing deferred render for %s (%s)" % (doc, doc.get_absolute_url())) render_document.delay(doc, cc, base_url) logging.info("Queued.") else: logging.info("Rendering %s (%s)" % (doc, doc.get_absolute_url())) try: render_document(doc, cc, base_url) logging.info("DONE.") except DocumentRenderingInProgress: logging.error("Rendering is already in progress for this " "document")