uwsgi Python模块¶
uWSGI服务器自动添加一个 uwsgi 模块到你的Python应用中。
这对于配置uWSGI服务器是有用的,使用它的内部函数,并获取分析数据(以及检测你是否真的在uWSGI下运行)。
注解
许多这些函数当前不幸未公开。
模块级别的全局¶
-
uwsgi.numproc¶ 当前运行的进程/worker数。
-
uwsgi.buffer_size¶ 当前配置的缓冲区大小,以字节为单位。
-
uwsgi.started_on(int)¶ uWSGI启动的Unix时间戳。
-
uwsgi.fastfuncs¶ 这是一个用来定义
FastFuncs的字典。
-
uwsgi.applist¶ 这是当前配置的应用列表。
-
uwsgi.message_manager_marshal¶ 当uWSGI服务器接收到一个已编组消息( marshalled message)时运行的回调。
-
uwsgi.magic_table¶ 配置占位符的魔术表。
-
uwsgi.opt¶ 当前配置选项,包括任何自定义占位符。
缓存函数¶
-
uwsgi.cache_get(key[, cache_name])¶ 从缓存中获取一个值。
参数: - key – 要读取的缓存键。
- cache_name – 多缓存模式中的缓存名字 (可以是name@address这样的格式)。可选。
-
uwsgi.cache_set(key, value[, expire, cache_name])¶ 设置缓存中的一个值。
参数: - key – 要写的缓存键。
- value – 要写的缓存值。
- expire – 值的失效时间,以秒为单位。
- cache_name – 多缓存模式中的缓存名字 (可以是name@address这样的格式)。可选。
-
uwsgi.cache_update(key, value[, expire, cache_server])¶
-
uwsgi.cache_del(key[, cache_name])¶ 从缓存中删除给定的缓存值。
参数: - key – 要删除的缓存键
- cache_name – 多缓存模式中的缓存名字 (可以是name@address这样的格式)。可选。
-
uwsgi.cache_exists(key[, cache_name])¶ 快速检查缓存中是否有与给定键关联的值。
参数: - key – 要坚持的缓存键
- cache_name – 多缓存模式中的缓存名字 (可以是name@address这样的格式)。可选。
-
uwsgi.cache_clear()¶
队列函数¶
-
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函数¶
-
uwsgi.snmp_set_community(str)¶ 参数: str – 包含新的community值的字符串。 设置SNMP community字符串。
-
uwsgi.snmp_set_counter32(oidnum, value)¶
-
uwsgi.snmp_set_counter64(oidnum, value)¶
-
uwsgi.snmp_set_gauge(oidnum, value)¶ 参数: - oidnum – 一个包含oid数字目标的整数
- 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 – 一个包含oid数字目标的整数。
- value – 一个包含增加/减少计数器或测量的量整数值。如果未指定,默认为1.
增加或减少计数器或测量一个特定的量。
注解
uWSGI OID树从1.3.6.1.4.1.35156.17开始
spooler函数¶
-
uwsgi.send_to_spooler(message_dict=None, spooler=None, priority=None, at=None, body=None, **kwargs)¶ 参数: - message_dict – 发送到spool的消息 (字符串键,字符串值)。要么这样,要么设置**kwargs。
- spooler – 要使用的spooler (id或者目录)
- priority – 消息的优先级。越大越不重要。
- at – 应该处理这条信息的最小的UNIX时间戳。
- body – 除了消息字典本身,添加到消息的一个二进制 (字节字符串)体。它的值可通过消息中的
body键访问。
发送数据到 uWSGI Spooler. 又名 spool().
注解
所有的关键字参数也可以在消息字典中传递。这意味着它们是保留字,嗯,某种程度上……
-
uwsgi.set_spooler_frequency(seconds)¶ 设置spooler运行的频率。
-
uwsgi.spooler_jobs()¶
-
uwsgi.spooler_pid()¶
-
uwsgi.spooler_get_task(path)¶ 参数: path – 读取任务的相对/绝对路径
高级方法¶
-
uwsgi.send_message()¶ 使用 uwsgi协议 发送一般消息。
注解
这个函数被称为
send_uwsgi_message(),直到版本 2f970ce58543278c851ff30e52758fd6d6e69fdc.
-
uwsgi.route()¶
-
uwsgi.send_multi_message()¶ 使用 uwsgi协议 发送一条一般消息到多个接收者
注解
这个函数被称为
send_multi_uwsgi_message(),直到 2f970ce58543278c851ff30e52758fd6d6e69fdc 版本。参见
查看
Clustering获得更多例子
-
uwsgi.accepting(accepting=True)¶ 设置当前worker的接受标志的值。在同时使用 `Overriding Workers`_ 和加载时建立链的时候必须。
参见
-
uwsgi.reload()¶ 优雅地重载uWSGI服务器栈。
参见
Reload
-
uwsgi.stop()¶
-
uwsgi.workers() → dict¶ 为当前服务器获取所有worker的统计数据字典。返回一个字典。
-
uwsgi.masterpid() → int¶ 返回uWSGI master进程的进程标识符 (PID)。
-
uwsgi.total_requests() → int¶ 返回的至今由uWSGI worker池管理的请求总数。
-
uwsgi.get_option()¶ 也可作为 getoption() 使用。
-
uwsgi.set_option()¶ 也可作为 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 – 要锁的锁号。Lock 0总是可用的。
-
uwsgi.is_locked()¶
-
uwsgi.unlock(locknum=0)¶ 参数: locknum – 要解锁的锁号。Lock 0总是可用的。
-
uwsgi.cl()¶
-
uwsgi.setprocname()¶
-
uwsgi.listen_queue()¶
-
uwsgi.register_signal(num, who, function)¶ :param num:配置的信号数 :param who: 一个魔法字符串,会设置哪个/些进程接收该信号。
worker/worker0将发送信号给第一个可用worker。如果你指定过一个空字符串,那么这是默认值。workers会发送信号给每个worker。workerN(N > 0) 会发送信号给worker N。mule/mule0会发送信号给第一个可用mule。 (见 uWSGI Mule)mules会发送信号给所有mule。muleN(N > 0) 会发送信号给mule N。cluster会发送信号给集群中的所有节点。警告:未实现。subscribed会发送信号给所有订阅节点。警告:未实现。spooler会发送信号给spooler。
cluster和subscribed特殊,因为它们会将信号发送给所有集群/订购节点的master。其他节点将不得不定义一个本地处理器,以避免可怕的信号风暴循环。参数: function – 一个回调,接收一个数字参数。
-
uwsgi.signal(num)¶ 参数: num – 引发的信号
-
uwsgi.signal_wait([signum])¶ 阻塞进程/线程/异步核心直到接收到了一个信号。使用
signal_received来获取接收到的信号值。 如果已经为该信号注册了一个处理函数,那么signal_wait将被终端,而实际的处理函数将处理该信号。参数: signum – 可选 - 要等待的信号
-
uwsgi.signal_registered()¶
-
uwsgi.signal_received()¶ 获取最后收到的信号值。结合
signal_wait使用。
-
uwsgi.add_file_monitor()¶
-
uwsgi.add_timer(signum, seconds)¶ 参数: - signum – 引发的信号值。
- seconds – 引发信号的时间间隔。
-
uwsgi.add_probe()¶
-
uwsgi.add_rb_timer(signum, seconds[, iterations=0])¶ Add an user-space (red-black tree backed) timer.
参数: - signum – 引发的信号值。
- seconds – 引发信号的时间间隔。
- iterations – 引发信号的次数。0 (默认) 表示无数次。
-
uwsgi.add_cron(signal, minute, hour, day, month, weekday)¶ 对于时间参数,你可以使用语法
-n来表示“每n”。例如,hour=-2将声明会每隔一个小时发送一次信号。参数: - signal – 引发的信号值。
- minute – 运行该事件的分钟。
- hour – 运行该事件的小时。
- day – 运行该事件的天。这会和
weekday进行或运算。 - month – 运行该事件的月。
- weekday – 运行该事件的工作日。这会与
day进行或运算。 (根据POSIX标准,0是星期天,6是星期一)
-
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 – 要提取的符号名。 从uWSGI二进制镜像中提取一个符号。
-
uwsgi.extract()¶
-
uwsgi.mule_msg(string[, id])¶ 参数: - string – 要发送的字节字符串消息。
- id – 可选 - 接收该消息的mule ID。如果你不指定一个ID,那么这条消息就会被发送到第一个可用的编程mule。
发送一条消息给一个mule。
-
uwsgi.farm_msg()¶
-
uwsgi.mule_get_msg()¶ 返回: 一旦接收到一条mule消息,则返回。 阻塞,直到接收到了一条Mule消息,并返回这条消息。可以在同一个编程mule中从多个线程中调用该函数。
-
uwsgi.farm_get_msg()¶
-
uwsgi.in_farm()¶
-
uwsgi.ready()¶
-
uwsgi.set_user_harakiri()¶
异步函数¶
-
uwsgi.async_sleep(seconds)¶ 暂停处理当前请求
seconds秒,并将控制权传给下一个异步核心。参数: seconds – 休眠时间,以秒为单位。
-
uwsgi.async_connect()¶
-
uwsgi.async_send_message()¶
-
uwsgi.green_schedule()¶
-
uwsgi.suspend()¶ 挂起处理当前请求,并将控制权传给下一个要求控制权的异步核心。
-
uwsgi.wait_fd_read(fd[, timeout])¶ 挂起处理当前请求,直到文件描述符
fd上有可读数据。在挂起以添加更多文件描述符到被监控的集合中之前可能会被多次调用。参数: - fd – 文件描述符号。
- timeout – 可选的超时 (如果省略,则是无限).
-
uwsgi.wait_fd_write(fd[, timeout])¶ 挂起处理当前请求,直到文件描述符
fd上没有更多可写的内容。 在添加更多文件描述符到被监控的集合中之前可能会被多次调用。参数: - fd – 文件描述符号。
- timeout – 可选的超时 (如果省略,则是无限).