0002-misc-prevent-locking-all-jobs-36215.patch
passerelle/base/models.py | ||
---|---|---|
501 | 501 |
skipped_jobs = [] |
502 | 502 |
while True: |
503 | 503 |
with transaction.atomic(): |
504 |
# lock a job |
|
504 |
# lock a runnable job
|
|
505 | 505 |
job = self.jobs_set().exclude( |
506 | 506 |
pk__in=skipped_jobs |
507 | 507 |
).filter( |
508 | 508 |
status='registered' |
509 |
).select_for_update(**skip_locked).first() |
|
509 |
).select_for_update(**skip_locked |
|
510 |
).order_by('pk')[:1].first() |
|
510 | 511 |
if not job: |
511 | 512 |
break |
512 | 513 |
job.status = 'running' |
513 |
- |