Server IP : 85.214.239.14 / Your IP : 216.73.216.170 Web Server : Apache/2.4.65 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Mon Sep 30 15:36:27 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 8.2.29 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /proc/2/task/2/cwd/proc/3/cwd/usr/share/doc/uwsgi-core/tests/ |
Upload File : |
# uwsgi --async 1000 --ugreen import uwsgi import psycopg2 def async_wait(conn): # conn can be a connection or a cursor if not hasattr(conn, 'poll'): conn = conn.connection # interesting part: suspend until ready while True: state = conn.poll() if state == psycopg2.extensions.POLL_OK: break elif state == psycopg2.extensions.POLL_READ: uwsgi.wait_fd_read(conn.fileno()) uwsgi.suspend() elif state == psycopg2.extensions.POLL_WRITE: uwsgi.wait_fd_write(conn.fileno()) uwsgi.suspend() else: raise Exception("Unexpected result from poll: %r", state) def application(env, start_response): start_response('200 Ok', [('Content-type', 'text/html')]) conn = psycopg2.connect("dbname=template1 user=postgres", async=True) # suspend until connection async_wait(conn) curs = conn.cursor() yield "<table>" curs.execute("SELECT * FROM tests") # suspend until result async_wait(curs) while True: row = curs.fetchone() if not row: break yield "<tr><td>%s</td></tr>" % str(row) yield "</table>" conn.close()