|
|
@@ -0,0 +1,32 @@
|
|
|
+import multiprocessing
|
|
|
+import sys
|
|
|
+
|
|
|
+from granian import Granian
|
|
|
+
|
|
|
+
|
|
|
+if __name__ == '__main__':
|
|
|
+ interface = sys.argv[1]
|
|
|
+ runtime_mode = sys.argv[2]
|
|
|
+ workers = multiprocessing.cpu_count()
|
|
|
+
|
|
|
+ if interface == "rsgi":
|
|
|
+ #: leave 25% cpu to the Rust runtime
|
|
|
+ workers = round(workers * 0.75)
|
|
|
+
|
|
|
+ blocking_threads = None
|
|
|
+ if interface == "wsgi":
|
|
|
+ #: we don't run any I/O in WSGI benches
|
|
|
+ blocking_threads = 1
|
|
|
+
|
|
|
+ Granian(
|
|
|
+ f"app_{interface}_nogil:main",
|
|
|
+ address="0.0.0.0",
|
|
|
+ port=8080,
|
|
|
+ workers=workers,
|
|
|
+ runtime_mode=runtime_mode,
|
|
|
+ blocking_threads=blocking_threads,
|
|
|
+ backlog=16384,
|
|
|
+ interface=interface,
|
|
|
+ http="1",
|
|
|
+ websockets=False
|
|
|
+ ).serve()
|