misc: don't run jobs if connector is down (#36193)

This commit is contained in:
Frédéric Péters 2019-09-17 14:59:39 +02:00
parent e3e729a289
commit f9dd7454d8
2 changed files with 14 additions and 0 deletions

View File

@ -486,6 +486,9 @@ class BaseResource(models.Model):
def jobs(self):
# "jobs" cron job to run asynchronous tasks
if self.down():
# don't try running jobs if connector is known to be down.
return
resource_type = ContentType.objects.get_for_model(self)
skip_locked = {'skip_locked': True}
if not connection.features.has_select_for_update_skip_locked:

View File

@ -38,3 +38,14 @@ def test_jobs(mocked_get, app, base_adresse):
mocked_get.side_effect = SkipJob()
base_adresse.jobs()
assert Job.objects.get(id=job.id).status == 'registered'
# don't run jobs if connector is down
StreetModel.objects.all().delete()
with mock.patch('passerelle.apps.base_adresse.models.BaseAdresse.down') as down:
down.side_effect = lambda: True
mocked_get.return_value = utils.FakedResponse(content=open(filepath).read(), status_code=200)
job = base_adresse.add_job('update_streets_data')
assert job.status == 'registered'
base_adresse.jobs()
assert Job.objects.get(id=job.id).status == 'registered'