What you are looking for is readiness check. Basically readiness is a
concept wherein something reports to be ready to handle requests (this
something could be a web server, a docker container, a kubernetes pod, a
database, etc.)

You can custom define an API endpoint that returns 200 OK when your Django
server is ready to handle the requests, and internally make a request to
that API endpoint and only execute your file once the endpoint returns 200
OK.

Alternatively, there are third-party packages (a quick google search
revealed django-probes <https://pypi.org/project/django-probes/>) that
might assist you in implementing something similar.

Logically, at a primitive level, your flow would be something along the
lines of:

   - Define an API endpoint:
      - This should return a custom response WHILE it is YET to be ready to
      start taking requests
      - This should return a different custom response WHEN it is ready to
      start taking requests
   - Once you have the desired "ready" response, you go on invoking the
   file, until then you keep delaying it by adding a second's sleep or
   something.

Sample code


   1. import requests
   2.
   3. """
   4. api_endpoint is the custom endpoint that returns your desired
   5. response based on whether or not Django Server is ready to take
   6. on requests
   7. """
   8. response = requests.get(api_endpoint)
   9.
   10. while response.status_code != 200:
   11.     time.sleep(1) # Sleep for 1 second
   12.     response = requests.get(api_endpoint)
   13.
   14. # Once this while loop breaks, this indicates we are good to proceed
   15.
   16. if response.status_code == 200:
   17.     # Do rest of your job here


Pastebin link to above: https://pastebin.com/G3G41Xmb

--
Regards
Deep L Sukhwani

ᐧ

On Mon, 30 Sep 2019 at 16:12, Sampath Reddy <[email protected]>
wrote:

> Hey All,
>
> Using DRF for developing backend api end points for the application, I
> want to run a python module, only when we are sure Django server is up and
> running As I am calling the api end in that module.
>
> So need to be sure Django server is up and running, before I can call the
> same server API end point.
>
> Precisely What I am looking for is, how django loads files and starts
> executing them when I run "python manage.py runserver 0.0.0.0:8084" from
> command line. I want to delay some files execution if possible.
>
> Any leads are much appreciated.
>
> Thanks,
> Sampath
>
> --
> You received this message because you are subscribed to the Google Groups
> "Django users" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to [email protected].
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/django-users/CAErixQ3%3D_ms9y-RtHa89LMtgFvHBN2sQ32GJ1yef0MCtx7HT%3Dw%40mail.gmail.com
> <https://groups.google.com/d/msgid/django-users/CAErixQ3%3D_ms9y-RtHa89LMtgFvHBN2sQ32GJ1yef0MCtx7HT%3Dw%40mail.gmail.com?utm_medium=email&utm_source=footer>
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Django users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-users/CAEMqiPc_-kkbZbxiw9Ui7-NDb3kMb9Gv9vryoXh8wJLZkexHeA%40mail.gmail.com.

Reply via email to