File: sigwait.py

package info (click to toggle)
uwsgi 2.0.31-2
  • links: PTS, VCS
  • area: main
  • in suites: sid
  • size: 6,624 kB
  • sloc: ansic: 87,072; python: 7,010; cpp: 1,133; java: 708; perl: 678; sh: 585; ruby: 555; makefile: 148; xml: 130; cs: 121; objc: 37; php: 28; erlang: 20; javascript: 11
file content (30 lines) | stat: -rw-r--r-- 645 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import uwsgi
from uwsgidecorators import *


@signal(17, target='workers')
def hello(signum):
    print("I AM THE WORKER %d" % uwsgi.worker_id())


@signal(30, target='worker2')
def hello2(signum):
    print("I AM THE WORKER 2")


@postfork
def wait_for_signal():
    if uwsgi.worker_id() != 2:
        print("waiting for a signal...")
        uwsgi.signal_wait()
        print("signal %d received" % uwsgi.signal_received())


def application(e, s):
    s('200 OK', [('Content-Type', 'text/html')])
    if e['PATH_INFO'] == '/30':
        uwsgi.signal(30)
        uwsgi.signal(100)
    else:
        uwsgi.signal(17)
    return "Signal raised"