GloboNetworkAPI icon indicating copy to clipboard operation
GloboNetworkAPI copied to clipboard

Concurrency problem with healthcheck

Open marcusgc opened this issue 6 years ago • 1 comments

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()

marcusgc avatar Jan 25 '19 16:01 marcusgc

Using unique_together I believe would solve, what do you think?

lucassouto avatar Oct 04 '19 00:10 lucassouto