Esempio n. 1
0
    def make_batch(N, jt_pos=0):
        jt = None
        while not jt:
            try:
                jt = JobTemplate.objects.all()[jt_pos % jt_count]
            except IndexError as e:
                # seems to happen every now and then due to some race condition
                print('Warning: IndexError on {} JT, error: {}'.format(
                    jt_pos % jt_count, e))
            jt_pos += 1
        jt_defaults = dict((f.attname, getattr(jt, f.attname))
                           for f in JobTemplate._meta.get_fields()
                           if f.concrete and f.attname in job_field_names
                           and getattr(jt, f.attname))
        jt_defaults['job_template_id'] = jt.pk
        jt_defaults[
            'unified_job_template_id'] = jt.pk  # populated by save method

        jobs = [
            Job(status=STATUS_OPTIONS[i % len(STATUS_OPTIONS)],
                started=now() - time_delta,
                created=now() - time_delta,
                modified=now() - time_delta,
                finished=now() - time_delta,
                elapsed=0.,
                **jt_defaults) for i in range(N)
        ]
        ujs = UnifiedJob.objects.bulk_create(jobs)
        query = InsertQuery(Job)
        query.insert_values(fields, ujs)
        with connection.cursor() as cursor:
            query, params = query.sql_with_params()[0]
            cursor.execute(query, params)
        return ujs[-1], jt_pos
Esempio n. 2
0
 def make_batch(N, **extra):
     jobs = [
         Job(status='canceled',
             created=now(),
             modified=now(),
             elapsed=0.,
             **extra) for i in range(N)
     ]
     ujs = UnifiedJob.objects.bulk_create(jobs)
     query = InsertQuery(Job)
     query.insert_values(fields, ujs)
     with connection.cursor() as cursor:
         query, params = query.sql_with_params()[0]
         cursor.execute(query, params)
     return ujs[-1]