The uwsgi Python module¶
The uWSGI server automagically adds a uwsgi
module into your Python apps.
This is useful for configuring the uWSGI server, use its internal functions and get statistics (as well as detecting whether you’re actually running under uWSGI).
注解
Many of these functions are currently woefully undocumented.
Module-level globals¶
-
uwsgi.
numproc
¶ The number of processes/workers currently running.
-
uwsgi.
buffer_size
¶ The current configured buffer size in bytes.
-
uwsgi.
started_on
(int)¶ The Unix timestamp of uWSGI’s startup.
-
uwsgi.
fastfuncs
¶ This is the dictionary used to define FastFuncs.
-
uwsgi.
applist
¶ This is the list of applications currently configured.
-
uwsgi.
applications
¶ This is the dynamic applications dictionary.
-
uwsgi.
message_manager_marshal
¶ The callable to run when the uWSGI server receives a marshalled message.
-
uwsgi.
magic_table
¶ The magic table of configuration placeholders.
-
uwsgi.
opt
¶ The current configuration options, including any custom placeholders.
Cache functions¶
-
uwsgi.
cache_get
(key[, cache_server])¶ Get a value from the cache.
参数: - key – The cache key to read.
- cache_server – The UNIX/TCP socket where the cache server is listening. Optional.
-
uwsgi.
cache_set
(key, value[, expire, cache_server])¶ Set a value in the cache.
参数: - key – The cache key to write.
- value – The cache value to write.
- expire – Expiry time of the value, in seconds.
- cache_server – The UNIX/TCP socket where the cache server is listening. Optional.
-
uwsgi.
cache_update
(key, value[, expire, cache_server])¶
-
uwsgi.
cache_del
(key[, cache_server])¶ Delete the given cached value from the cache.
参数: - key – The cache key to delete.
- cache_server – The UNIX/TCP socket where the cache server is listening. Optional.
-
uwsgi.
cache_exists
(key[, cache_server])¶ Quickly check whether there is a value in the cache associated with the given key.
参数: - key – The cache key to check.
- cache_server – The UNIX/TCP socket where the cache server is listening. Optional.
-
uwsgi.
cache_clear
()¶
Queue functions¶
-
uwsgi.
queue_get
()¶
-
uwsgi.
queue_set
()¶
-
uwsgi.
queue_last
()¶
-
uwsgi.
queue_push
()¶
-
uwsgi.
queue_pull
()¶
-
uwsgi.
queue_pop
()¶
-
uwsgi.
queue_slot
()¶
-
uwsgi.
queue_pull_slot
()¶
SNMP functions¶
-
uwsgi.
snmp_set_community
(str)¶ 参数: str – The string containing the new community value. Sets the SNMP community string.
-
uwsgi.
snmp_set_counter32
(oidnum, value)¶
-
uwsgi.
snmp_set_counter64
(oidnum, value)¶
-
uwsgi.
snmp_set_gauge
(oidnum, value)¶ 参数: - oidnum – An integer containing the oid number target.
- value – An integer containing the new value of the counter or gauge.
Sets the counter or gauge to a specific value.
-
uwsgi.
snmp_incr_counter32
(oidnum, value)¶
-
uwsgi.
snmp_incr_counter64
(oidnum, value)¶
-
uwsgi.
snmp_incr_gauge
(oidnum, value)¶
-
uwsgi.
snmp_decr_counter32
(oidnum, value)¶
-
uwsgi.
snmp_decr_counter64
(oidnum, value)¶
-
uwsgi.
snmp_decr_gauge
(oidnum, value)¶ 参数: - oidnum – An integer containing the oid number target.
- value – An integer containing the amount to increase or decrease the counter or gauge. If not specified the default is 1.
Increases or decreases the counter or gauge by a specific amount.
注解
uWSGI OID tree starts at 1.3.6.1.4.1.35156.17
Spooler functions¶
-
uwsgi.
send_to_spooler
(message_dict=None, spooler=None, priority=None, at=None, body=None, **kwargs)¶ 参数: - message_dict – The message (string keys, string values) to spool. Either this, or **kwargs may be set.
- spooler – The spooler (id or directory) to use.
- priority – The priority of the message. Larger = less important.
- at – The minimum UNIX timestamp at which this message should be processed.
- body – A binary (bytestring) body to add to the message, in addition to the message dictionary itself. Its value will be available in the key
body
in the message.
Send data to the The uWSGI Spooler. Also known as spool().
注解
Any of the keyword arguments may also be passed in the message dictionary. This means they’re reserved words, in a way...
-
uwsgi.
set_spooler_frequency
(seconds)¶ Set how often the spooler runs.
-
uwsgi.
spooler_jobs
()¶
-
uwsgi.
spooler_pid
()¶
Advanced methods¶
-
uwsgi.
send_message
()¶ Send a generic message using The uwsgi Protocol.
注解
Until version 2f970ce58543278c851ff30e52758fd6d6e69fdc this function was called
send_uwsgi_message()
.
-
uwsgi.
route
()¶
-
uwsgi.
send_multi_message
()¶ Send a generic message to multiple recipients using The uwsgi Protocol.
注解
Until version 2f970ce58543278c851ff30e52758fd6d6e69fdc this function was called
send_multi_uwsgi_message()
.参见
Clustering for examples
-
uwsgi.
reload
()¶ Gracefully reload the uWSGI server stack.
参见
Reload
-
uwsgi.
stop
()¶
-
uwsgi.
workers
() → dict¶ Get a statistics dictionary of all the workers for the current server. A dictionary is returned.
-
uwsgi.
masterpid
() → int¶ Return the process identifier (PID) of the uWSGI master process.
-
uwsgi.
total_requests
() → int¶ Returns the total number of requests managed so far by the pool of uWSGI workers.
-
uwsgi.
get_option
()¶ Also available as getoption().
-
uwsgi.
set_option
()¶ Also available as setoption().
-
uwsgi.
sorry_i_need_to_block
()¶
-
uwsgi.
request_id
()¶
-
uwsgi.
worker_id
()¶
-
uwsgi.
mule_id
()¶
-
uwsgi.
log
()¶
-
uwsgi.
log_this_request
()¶
-
uwsgi.
set_logvar
()¶
-
uwsgi.
get_logvar
()¶
-
uwsgi.
disconnect
()¶
-
uwsgi.
grunt
()¶
-
uwsgi.
lock
(locknum=0)¶ 参数: locknum – The lock number to lock. Lock 0 is always available.
-
uwsgi.
is_locked
()¶
-
uwsgi.
unlock
(locknum=0)¶ 参数: locknum – The lock number to unlock. Lock 0 is always available.
-
uwsgi.
cl
()¶
-
uwsgi.
setprocname
()¶
-
uwsgi.
listen_queue
()¶
-
uwsgi.
register_signal
(num, who, function)¶ 参数: - num – the signal number to configure
- who –
a magic string that will set which process/processes receive the signal.
worker
/worker0
will send the signal to the first available worker. This is the default if you specify an empty string.workers
will send the signal to every worker.workerN
(N > 0) will send the signal to worker N.mule
/mule0
will send the signal to the first available mule. (See uWSGI Mules)mules
will send the signal to all mulesmuleN
(N > 0) will send the signal to mule N.cluster
will send the signal to all the nodes in the cluster. Warning: not implemented.subscribed
will send the signal to all subscribed nodes. Warning: not implemented.spooler
will send the signal to the spooler.
cluster
andsubscribed
are special, as they will send the signal to the master of all cluster/subscribed nodes. The other nodes will have to define a local handler though, to avoid a terrible signal storm loop. - function – A callable that takes a single numeric argument.
-
uwsgi.
signal
(num)¶ 参数: num – the signal number to raise
-
uwsgi.
signal_wait
([signum])¶ Block the process/thread/async core until a signal is received. Use
signal_received
to get the number of the signal received. If a registered handler handles a signal,signal_wait
will be interrupted and the actual handler will handle the signal.参数: signum – Optional - the signal to wait for
-
uwsgi.
signal_registered
()¶
-
uwsgi.
signal_received
()¶ Get the number of the last signal received. Used in conjunction with
signal_wait
.
-
uwsgi.
add_file_monitor
()¶
-
uwsgi.
add_timer
(signum, seconds[, iterations=0])¶ 参数: - signum – The signal number to raise.
- seconds – The interval at which to raise the signal.
- iterations – How many times to raise the signal. 0 (the default) means infinity.
-
uwsgi.
add_probe
()¶
-
uwsgi.
add_rb_timer
(signum, seconds[, iterations=0])¶ Add an user-space (red-black tree backed) timer.
参数: - signum – The signal number to raise.
- seconds – The interval at which to raise the signal.
- iterations – How many times to raise the signal. 0 (the default) means infinity.
-
uwsgi.
add_cron
(signal, minute, hour, day, month, weekday)¶ For the time parameters, you may use the syntax
-n
to denote “every n”. For instancehour=-2
would declare the signal to be sent every other hour.参数: - signal – The signal number to raise.
- minute – The minute on which to run this event.
- hour – The hour on which to run this event.
- day – The day on which to run this event. This is “OR”ed with
weekday
. - month – The month on which to run this event.
- weekday – The weekday on which to run this event. This is “OR”ed with
day
. (In accordance with the POSIX standard, 0 is Sunday, 6 is Monday)
-
uwsgi.
register_rpc
()¶
-
uwsgi.
rpc
()¶
-
uwsgi.
rpc_list
()¶
-
uwsgi.
call
()¶
-
uwsgi.
sendfile
()¶
-
uwsgi.
set_warning_message
()¶
-
uwsgi.
mem
()¶
-
uwsgi.
has_hook
()¶
-
uwsgi.
logsize
()¶
-
uwsgi.
send_multicast_message
()¶
-
uwsgi.
cluster_nodes
()¶
-
uwsgi.
cluster_node_name
()¶
-
uwsgi.
cluster
()¶
-
uwsgi.
cluster_best_node
()¶
-
uwsgi.
connect
()¶
-
uwsgi.
connection_fd
()¶
-
uwsgi.
is_connected
()¶
-
uwsgi.
send
()¶
-
uwsgi.
recv
()¶
-
uwsgi.
recv_block
()¶
-
uwsgi.
recv_frame
()¶
-
uwsgi.
close
()¶
-
uwsgi.
i_am_the_spooler
()¶
-
uwsgi.
fcgi
()¶
-
uwsgi.
parsefile
()¶
-
uwsgi.
embedded_data
(symbol_name)¶ 参数: string – The symbol name to extract. Extracts a symbol from the uWSGI binary image.
-
uwsgi.
extract
()¶
-
uwsgi.
mule_msg
(string[, id])¶ 参数: - string – The bytestring message to send.
- id – Optional - the mule ID to receive the message. If you do not specify an ID, the message will go to the first available programmed mule.
Send a message to a mule.
-
uwsgi.
farm_msg
()¶
-
uwsgi.
mule_get_msg
()¶ 返回: A mule message, once one is received. Block until a mule message is received and return it. This can be called from multiple threads in the same programmed mule.
-
uwsgi.
farm_get_msg
()¶
-
uwsgi.
in_farm
()¶
-
uwsgi.
ready
()¶
-
uwsgi.
set_user_harakiri
()¶
Async functions¶
-
uwsgi.
async_sleep
(seconds)¶ Suspend handling the current request for
seconds
seconds and pass control to the next async core.参数: seconds – Sleep time, in seconds.
-
uwsgi.
async_connect
()¶
-
uwsgi.
async_send_message
()¶
-
uwsgi.
green_schedule
()¶
-
uwsgi.
suspend
()¶ Suspend handling the current request and pass control to the next async core clamoring for attention.
-
uwsgi.
wait_fd_read
(fd[, timeout])¶ Suspend handling the current request until there is something to be read on file descriptor
fd
. May be called several times before yielding/suspending to add more file descriptors to the set to be watched.参数: - fd – File descriptor number.
- timeout – Optional timeout (infinite if omitted).
-
uwsgi.
wait_fd_write
(fd[, timeout])¶ Suspend handling the current request until there is nothing more to be written on file descriptor
fd
. May be called several times to add more file descriptors to the set to be watched.参数: - fd – File descriptor number.
- timeout – Optional timeout (infinite if omitted).