Server IP : 85.214.239.14 / Your IP : 18.218.146.251 Web Server : Apache/2.4.62 (Debian) System : Linux h2886529.stratoserver.net 4.9.0 #1 SMP Tue Jan 9 19:45:01 MSK 2024 x86_64 User : www-data ( 33) PHP Version : 7.4.18 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, MySQL : OFF | cURL : OFF | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : OFF Directory : /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()