mirror of
https://github.com/clearlinux/uwsgi.git
synced 2026-06-16 02:15:48 +00:00
moved example files
This commit is contained in:
@@ -0,0 +1,36 @@
|
||||
import Queue
|
||||
from threading import Thread
|
||||
import uwsgi
|
||||
|
||||
CONSUMERS = 4
|
||||
|
||||
def consumer(q):
|
||||
while True:
|
||||
item = q.get()
|
||||
print(item)
|
||||
#... DO A HEAVY TASK HERE ...
|
||||
q.task_done()
|
||||
|
||||
def spawn_consumers():
|
||||
global q
|
||||
q = Queue.Queue()
|
||||
for i in range(CONSUMERS):
|
||||
t = Thread(target=consumer,args=(q,))
|
||||
t.daemon = True
|
||||
t.start()
|
||||
print("consumer %d on worker %d started" % (i, uwsgi.worker_id()))
|
||||
|
||||
|
||||
uwsgi.post_fork_hook = spawn_consumers
|
||||
|
||||
|
||||
def application(env, start_response):
|
||||
global q
|
||||
|
||||
# we pass a copy of the env dictionary as it gets cleared after yield/return
|
||||
q.put(env.copy())
|
||||
|
||||
start_response('200 OK', [('Content-Type', 'text/html')])
|
||||
|
||||
yield "Task enqueued"
|
||||
|
||||
Reference in New Issue
Block a user