*runnablecallback 或 runnableclass. 类型 callable 或 qpm\process\runnable runnablecallback是在子进程执行实际任务的回调。runnableclass在子进程种执行实际任务的类,和runnablecallback二选一。
基于PHP+MYSQL开发,除了网上书店必备的商品管理、配送支付管理、订单管理、会员分组、会员管理、查询统计和多项商品促销功能,还具有完整的文章、图文、下载、单页、广告发布等网站内容管理功能。系统具有静态HTML生成、UTF-8多语言支持、可视化模版引擎等技术特点,支持多频道调用不同模版和任意设置频道首页,适合建立各种规模的网上书店。系统具有以下主要功能模块: 网站参数设置 - 对网站的一些参数进
quantity 类型 integer 默认1 并发数量。
<codeliberation mono font-size:13.6000003814697px padding:0px margin:0px word-break:normal border:0px display:inline max-width:initial overflow:initial line-height:inherit word-wrap:normal background:transparent><?php //保持3个子进程并发,在子进程中执行justDoIt 函数
$config = ['runnableCallback' => 'justDoIt', 'quantity' => 3];
$sup = qpm\supervisor\Supervisor::oneForOne($config);
$sup->start();
<phelvetica neue ui font-size:16px line-height:25.6000003814697px><span>例子2</span><pre class="brush:php;toolbar:false;" liberation mono font-size:13.6000003814697px margin-top:0px margin-bottom:16px line-height:1.45 padding:16px word-wrap:normal color:rgb background-color:rgb><codeliberation mono font-size:13.6000003814697px padding:0px margin:0px word-break:normal border:0px display:inline max-width:initial overflow:initial line-height:inherit word-wrap:normal background:transparent><?php //保持5个子进程并发,在子进程中执行 Foo::run()
//10秒内最多允许重启100次,否则主进程将异常退出
$config = ['runnableClass' => 'Foo', 'quantity' => 5, 'maxRestartTimes'=>100, 'withInSeconds'=>10];
$sup = qpm\supervisor\Supervisor::oneForOne($config);
$sup->start();
<h1helvetica neue ui>MultiGroupOneForOne<h2helvetica neue ui>方法<phelvetica neue ui font-size:16px line-height:25.6000003814697px>qpm\supervisor\Supervisor::oneForOne($config)<h2helvetica neue ui>使用场景<phelvetica neue ui font-size:16px line-height:25.6000003814697px>MultiGroupOneForOne是OneForOne的升级版,可管理多组OneForOne的进程。 MultiGroupOneForOne的配置是一个内嵌了若干OneForOne配置的数组。<h1helvetica neue ui>TaskFactoryMode<phelvetica neue ui font-size:16px line-height:25.6000003814697px>任务工厂模式,任务由指定的工厂方法产生。<h2helvetica neue ui>方法<phelvetica neue ui font-size:16px line-height:25.6000003814697px>qpm\supervisor\Supervisor::taskFactoryMode($config)<h2helvetica neue ui>使用场景<phelvetica neue ui font-size:16px line-height:25.6000003814697px>每次子进程执行的任务各不相同,须要不同的参数、类或Run函数,因此每次的任务都由任务工厂生成。<h2helvetica neue ui>配置字段<phelvetica neue ui font-size:16px line-height:25.6000003814697px>*factoryMethod callable 用于生成任务对象 或 callable的工厂方法。 factoryMethod 返回值可以是 qpm\process\Runnable 或 callable<ulhelvetica neue ui font-size:16px line-height:25.6000003814697px margin-bottom:0px><li>quantity 类型 integer 默认1 并发数量。</li>
<br><phelvetica neue ui font-size:16px line-height:25.6000003814697px margin-top:0px>截至0.2版本,QPM支持3种Supervison模式,OneForOne MultiGroupOneForOne 和 TaskFactoryMode。 不同的模式可以建立起不同的进程树组合,子进程的重启,并发控制的策略都各不相同,以适应不同的应用场景。 不同的模式对应着不同的工厂方法,例如OneForOne的创建方法是 qpm\supervisor\Supervisor::oneForOne($config);<h1helvetica neue ui>OneForOne<h2helvetica neue ui><span></span>方法<phelvetica neue ui font-size:16px line-height:25.6000003814697px>qpm\supervisor\Supervisor::oneForOne($config)<h2helvetica neue ui>使用场景<phelvetica neue ui font-size:16px line-height:25.6000003814697px>所有的子进程都使用同一个回调函数或Runnable类。<h2helvetica neue ui>配置字段<ulhelvetica neue ui font-size:16px line-height:25.6000003814697px><li><p>*runnablecallback 或 runnableclass. 类型 callable 或 qpm\process\runnable runnablecallback是在子进程执行实际任务的回调。runnableclass在子进程种执行实际任务的类,和runnablecallback二选一。</p></li>
<li><p>quantity 类型 integer 默认1 并发数量。</p></li>
<li>maxRestartTimes 类型 integer 最大重启次数, 和withInSeconds配合使用。</li>
<li>withInSeconds 类型 integer 和maxRestartTimes,指示master进程在约定的时间内最大的重启次数。</li>
<phelvetica neue ui font-size:16px line-height:25.6000003814697px><span>例子1</span><pre class="brush:php;toolbar:false;" liberation mono font-size:13.6000003814697px margin-top:0px margin-bottom:16px line-height:1.45 padding:16px word-wrap:normal color:rgb background-color:rgb><codeliberation mono font-size:13.6000003814697px padding:0px margin:0px word-break:normal border:0px display:inline max-width:initial overflow:initial line-height:inherit word-wrap:normal background:transparent><?php //保持3个子进程并发,在子进程中执行justDoIt 函数
$config = ['runnableCallback' => 'justDoIt', 'quantity' => 3];
$sup = qpm\supervisor\Supervisor::oneForOne($config);
$sup->start();
<phelvetica neue ui font-size:16px line-height:25.6000003814697px><span>例子2</span><pre class="brush:php;toolbar:false;" liberation mono font-size:13.6000003814697px margin-top:0px margin-bottom:16px line-height:1.45 padding:16px word-wrap:normal color:rgb background-color:rgb><codeliberation mono font-size:13.6000003814697px padding:0px margin:0px word-break:normal border:0px display:inline max-width:initial overflow:initial line-height:inherit word-wrap:normal background:transparent><?php //保持5个子进程并发,在子进程中执行 Foo::run()
//10秒内最多允许重启100次,否则主进程将异常退出
$config = ['runnableClass' => 'Foo', 'quantity' => 5, 'maxRestartTimes'=>100, 'withInSeconds'=>10];
$sup = qpm\supervisor\Supervisor::oneForOne($config);
$sup->start();
<h1helvetica neue ui>MultiGroupOneForOne<h2helvetica neue ui>方法<phelvetica neue ui font-size:16px line-height:25.6000003814697px>qpm\supervisor\Supervisor::oneForOne($config)<h2helvetica neue ui>使用场景<phelvetica neue ui font-size:16px line-height:25.6000003814697px>MultiGroupOneForOne是OneForOne的升级版,可管理多组OneForOne的进程。 MultiGroupOneForOne的配置是一个内嵌了若干OneForOne配置的数组。<h1helvetica neue ui>TaskFactoryMode<phelvetica neue ui font-size:16px line-height:25.6000003814697px>任务工厂模式,任务由指定的工厂方法产生。<h2helvetica neue ui>方法<phelvetica neue ui font-size:16px line-height:25.6000003814697px>qpm\supervisor\Supervisor::taskFactoryMode($config)<h2helvetica neue ui>使用场景<phelvetica neue ui font-size:16px line-height:25.6000003814697px>每次子进程执行的任务各不相同,须要不同的参数、类或Run函数,因此每次的任务都由任务工厂生成。<h2helvetica neue ui>配置字段<phelvetica neue ui font-size:16px line-height:25.6000003814697px>*factoryMethod callable 用于生成任务对象 或 callable的工厂方法。 factoryMethod 返回值可以是 qpm\process\Runnable 或 callable<ulhelvetica neue ui font-size:16px line-height:25.6000003814697px margin-bottom:0px><li>quantity 类型 integer 默认1 并发数量。</li>
<p>
以上就介绍了QPM-PHP多进程开发-Supervisor配置参考,包括了方面的内容,希望对PHP教程有兴趣的朋友有所帮助。</p>
<p>
</p>
</ulhelvetica></phelvetica></h2helvetica></phelvetica></h2helvetica></phelvetica></h2helvetica></phelvetica></h1helvetica></phelvetica></h2helvetica></phelvetica></h2helvetica></h1helvetica></codeliberation>










