diff --git a/mjml/settings.py b/mjml/settings.py index 714d92a..c8c82a6 100644 --- a/mjml/settings.py +++ b/mjml/settings.py @@ -9,6 +9,7 @@ # tcpserver backend mode configs MJML_TCPSERVERS = getattr(settings, 'MJML_TCPSERVERS', [('127.0.0.1', 28101)]) +MJML_TCPSERVERS_USE_RANDOM = getattr(settings, 'MJML_TCPSERVERS_RANDOM', True) assert isinstance(MJML_TCPSERVERS, (list, tuple)) for t in MJML_TCPSERVERS: assert isinstance(t, (list, tuple)) and len(t) == 2 and isinstance(t[0], str) and isinstance(t[1], int) @@ -18,6 +19,7 @@ 'URL': 'https://api.mjml.io/v1/render', 'HTTP_AUTH': None, # None (default) or ('login', 'password') }]) +MJML_HTTPSERVERS_USE_RANDOM = getattr(settings, 'MJML_HTTPSERVERS_RANDOM', True) assert isinstance(MJML_HTTPSERVERS, (list, tuple)) for t in MJML_HTTPSERVERS: assert isinstance(t, dict) diff --git a/mjml/tools.py b/mjml/tools.py index c064fdd..81165ea 100644 --- a/mjml/tools.py +++ b/mjml/tools.py @@ -59,7 +59,8 @@ def socket_recvall(sock: socket.socket, n: int) -> Optional[bytes]: def _mjml_render_by_tcpserver(mjml_code: str) -> str: if len(mjml_settings.MJML_TCPSERVERS) > 1: servers = list(mjml_settings.MJML_TCPSERVERS)[:] - random.shuffle(servers) + if mjml_settings.MJML_TCPSERVERS_USE_RANDOM is True: + random.shuffle(servers) else: servers = mjml_settings.MJML_TCPSERVERS mjml_code_data = force_bytes(mjml_code) @@ -102,7 +103,8 @@ def _mjml_render_by_httpserver(mjml_code: str) -> str: if len(mjml_settings.MJML_HTTPSERVERS) > 1: servers = list(mjml_settings.MJML_HTTPSERVERS)[:] - random.shuffle(servers) + if mjml_settings.MJML_HTTPSERVERS_USE_RANDOM is True: + random.shuffle(servers) else: servers = mjml_settings.MJML_HTTPSERVERS