用于处理多个进程的实用程序,包括将服务器分为多个进程和管理子进程。

创新互联建站是专业的呼兰网站建设公司,呼兰接单;提供网站制作、成都网站设计,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行呼兰网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!
exception tornado.process.CalledProcessError
subprocess.CalledProcessError 的别名。
tornado.process.cpu_count() → int
返回此机器上的处理器数量
tornado.process.fork_processes(num_processes: Optional[int], max_restarts: Optional[int] = None) → int
启动多个工作进程。
如果 num_processes为 None 或 <= 0,我们会检测这台机器上可用的内核数量并派生该数量的子进程。 如果给定 num_processes并且 > 0,我们将fork特定数量的子进程。
由于我们使用进程而不是线程,因此任何服务器代码之间都没有共享内存。
请注意,多个进程与 autoreload模块(或 tornado.web.Application 的 autoreload=True 选项,当 debug=True 时默认为 True)不兼容。 当使用多个进程时,在调用 fork_processes 之前不能创建或引用任何 IOLoop。
在每个子进程中,fork_processes 返回其任务 ID,一个介于 0 和 num_processes 之间的数字。 异常退出的进程(由于信号或非零退出状态)以相同的 id 重新启动(最多 max_restarts 次)。 在父进程中,fork_processes 在所有子进程正常退出后调用 sys.exit(0)。
max_restarts默认为 100。
可用性:Unix
tornado.process.task_id() → Optional[int]
返回当前任务 ID(如果有)。
如果此进程不是由 fork_processes创建的,则返回 None。
class tornado.process.Subprocess(*args, **kwargs)
使用 IOStream包装 subprocess.Popen。
构造函数与 subprocess.Popen 相同,但添加了以下内容:
stdin、stdout和 stderr可能具有值 tornado.process.Subprocess.STREAM,这将使生成的 Subprocess的相应属性成为 PipeIOStream。 如果使用此选项,调用者负责在完成Stream时关闭Stream。
Subprocess.STREAM 选项以及 set_exit_callback 和 wait_for_exit 方法在 Windows 上不起作用。 因此,没有理由在该平台上使用此类而不是 subprocess.Popen。
在 5.0 版中更改: io_loop参数(自 4.1 版以来已弃用)已被删除。
set_exit_callback(callback: Callable[[int], None]) → None
此进程退出时运行回调。
回调接受一个参数,即进程的返回码。
此方法使用 SIGCHLD处理程序,这是一个全局设置,如果您有其他库尝试处理相同的信号,则可能会发生冲突。 如果您使用多个 IOLoop,则可能需要先调用 Subprocess.initialize 以指定一个 IOLoop 来运行信号处理程序。
在许多情况下,如果信号处理程序导致问题,则可以使用 stdout 或 stderrStream上的关闭回调作为退出回调的替代方法。
可用性:Unix
wait_for_exit(raise_error: bool = True) → Future[int]
返回一个 Future,它在进程退出时解析。
用法:
ret = yield proc.wait_for_exit()这是 set_exit_callback 协程的替代方案(以及阻塞 subprocess.Popen.wait 的替代方案)。
默认情况下,如果进程具有非零退出状态,则引发 subprocess.CalledProcessError。 使用 wait_for_exit(raise_error=False) 抑制此行为并返回退出状态而不引发。
4.2 版中的新功能。
可用性:Unix
classmethod initialize() → None
初始化 SIGCHLD处理程序。
信号处理程序在 IOLoop上运行以避免锁定问题。 请注意,用于信号处理的 IOLoop不必与各个 Subprocess对象使用的相同(只要 IOLoop都在单独的线程中运行)。
在 5.0 版中更改: io_loop参数(自 4.1 版以来已弃用)已被删除。
可用性:Unix
classmethod uninitialize() → None
删除 SIGCHLD 处理程序。
新闻标题:创新互联Tornado教程:Tornado多进程的实用程序
本文链接:http://www.jxjierui.cn/article/dppdiej.html


咨询
建站咨询
