Spaces:
Paused
Paused
| #!/usr/bin/env python3 | |
| import os | |
| import signal | |
| import subprocess | |
| import sys | |
| def main() -> int: | |
| port = os.environ.get("PORT", "7860") | |
| server_cmd = [ | |
| "otree", | |
| "prodserver1of2", | |
| f"0.0.0.0:{port}", | |
| ] | |
| worker_cmd = [ | |
| "otree", | |
| "prodserver2of2", | |
| ] | |
| server_proc = subprocess.Popen(server_cmd) | |
| worker_proc = subprocess.Popen(worker_cmd) | |
| def shutdown(signum, frame): | |
| worker_proc.terminate() | |
| server_proc.terminate() | |
| signal.signal(signal.SIGTERM, shutdown) | |
| signal.signal(signal.SIGINT, shutdown) | |
| # wait for worker first (since it will block until stop) | |
| worker_return = worker_proc.wait() | |
| server_proc.terminate() | |
| server_proc.wait() | |
| return worker_return | |
| if __name__ == "__main__": | |
| sys.exit(main()) | |