github.com/pyroscope-io/pyroscope@v0.37.3-0.20230725203016-5f6947968bd0/examples/python/rideshare/django/app/ride_share/utility/utility.py (about)

     1  import time
     2  import pyroscope
     3  import os
     4  from datetime import datetime
     5  
     6  def mutex_lock(n):
     7      i = 0
     8      start_time = time.time()
     9      while time.time() - start_time < n * 10:
    10          i += 1
    11  
    12  def check_driver_availability(n):
    13      i = 0
    14      start_time = time.time()
    15      while time.time() - start_time < n / 2:
    16          i += 1
    17  
    18      # Every 4 minutes this will artificially create make requests in eu-north region slow
    19      # this is just for demonstration purposes to show how performance impacts show up in the
    20      # flamegraph
    21  
    22      force_mutex_lock = datetime.today().minute * 4 % 8 == 0
    23      if os.getenv("REGION") == "eu-north" and force_mutex_lock:
    24          mutex_lock(n)
    25  
    26  
    27  def find_nearest_vehicle(n, vehicle):
    28      print(f"finding nearest {vehicle}")
    29      with pyroscope.tag_wrapper({ "vehicle": vehicle}):
    30          i = 0
    31          start_time = time.time()
    32          while time.time() - start_time < n:
    33              i += 1
    34          if vehicle == "car":
    35              check_driver_availability(n)