GloboNetworkAPI
GloboNetworkAPI copied to clipboard
Concurrency problem with healthcheck
Class below is called when creating a new pool. When two requests are trying to create a healthcheck with the same identifier, it can be duplicated on the DB, causing next requests with same data to fail, as it would return two objects on get(). Need to change code to avoid this from happening. Use lock?
networkapi.healthcheckexpect.models: class Healthcheck(BaseModel): def get_create_healthcheck(self, healthcheck): try: hc = Healthcheck.objects.get(**healthcheck) except ObjectDoesNotExist: hc = Healthcheck(**healthcheck) hc.save()
Using unique_together I believe would solve, what do you think?