2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-06-15 03:25:42 +00:00

Fix isInMainThread and isPluginRegistryLoaded ready functions

This commit is contained in:
wolflu05
2023-07-12 13:57:06 +00:00
parent 5abbf48991
commit ec801a0969

View File

@ -20,21 +20,16 @@ def isRunningMigrations():
def isInMainThread():
"""Django starts two processes, one for the actual dev server and the other to reload the application.
"""Django runserver starts two processes, one for the actual dev server and the other to reload the application.
- The RUN_MAIN env is set in that case. However if --noreload is applied, this variable
is not set because there are no different threads.
- If this app is run in gunicorn there are several threads having "equal rights" so there is no real
main thread so we skip this check
"""
if '--noreload' in sys.argv or "gunicorn" in os.environ.get("SERVER_SOFTWARE", ""):
return True
if "runserver" in sys.argv and "--noreload" not in sys.argv:
return os.environ.get('RUN_MAIN', None) == "true"
print("IS_IN_MAIN_THREAD", os.environ.get('RUN_MAIN', None) == 'true')
return True
return os.environ.get('RUN_MAIN', None) == 'true'
def canAppAccessDatabase(allow_test: bool = False, allow_plugins: bool = False, allow_shell: bool = False):
"""Returns True if the apps.py file can access database records.
@ -92,14 +87,6 @@ def isPluginRegistryLoaded():
Returns: 'False' if the apps have not been reloaded already to prevent running the ready function twice
"""
from django.conf import settings
# If plugins are not enabled, there won't be a second load
if not settings.PLUGINS_ENABLED:
return True
from plugin import registry
print("IS_PLUGIN_REGISTRY_LOADED", not registry.is_loading)
return True
return not registry.is_loading
return registry.is_loading