Added translation of reference/gearman section (p1). Thanks to Spbima.

git-svn-id: https://svn.php.net/repository/phpdoc/ru/trunk@318047 c90b9560-bf6c-de11-be94-00142212c4b1
This commit is contained in:
Max Chaban
2011-10-12 08:48:31 +00:00
parent 7f3674f224
commit c59465864c
9 changed files with 1176 additions and 0 deletions

View File

@ -0,0 +1,72 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8b6d169424ff189bb563ef4c3f35f8adff3f42c5 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<phpdoc:classref xml:id="class.gearmanclient" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс GearmanClient</title>
<titleabbrev>GearmanClient</titleabbrev>
<partintro>
<!-- {{{ GearmanClient intro -->
<section xml:id="gearmanclient.intro">
&reftitle.intro;
<para>
Представляет собой класс для подключения к серверу задач Gearman и выполнения
некоторых функций над указанными данными. Выполняемая функция должна быть
зарегистрирована процессом Gearman worker и передаваемые данные являются
непрозрачными для сервера задач.
</para>
</section>
<!-- }}} -->
<section xml:id="gearmanclient.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>GearmanClient</classname></ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>GearmanClient</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.gearmanclient')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
</classsynopsis>
<!-- }}} -->
</section>
</partintro>
&reference.gearman.entities.gearmanclient;
</phpdoc:classref>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8b6d169424ff189bb563ef4c3f35f8adff3f42c5 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<refentry xml:id="gearmanclient.addoptions" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>GearmanClient::addOptions</refname>
<refpurpose>Добавить клиентские опции</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>bool</type><methodname>GearmanClient::addOptions</methodname>
<methodparam><type>int</type><parameter>options</parameter></methodparam>
</methodsynopsis>
<para>
Добавляет одну или несколько опций к уже установленным.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>options</parameter></term>
<listitem>
<para>
Опции для добавления
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Всегда возвращает &true;.
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,110 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8b6d169424ff189bb563ef4c3f35f8adff3f42c5 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<refentry xml:id="gearmanclient.addserver" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>GearmanClient::addServer</refname>
<refpurpose>Добавить сервер задач для клиента</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>bool</type><methodname>GearmanClient::addServer</methodname>
<methodparam choice="opt"><type>string</type><parameter>host</parameter><initializer>127.0.0.1</initializer></methodparam>
<methodparam choice="opt"><type>int</type><parameter>port</parameter><initializer>4730</initializer></methodparam>
</methodsynopsis>
<para>
Добавляет сервер задач к списку серверов, которые могут использоваться для выполнения задачи.
Никаких операций ввода-вывода c сокетом здесь не происходит. Сервер просто добавляется к списку.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>host</parameter></term>
<listitem>
<para>
&gearman.parameter.host;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>port</parameter></term>
<listitem>
<para>
&gearman.parameter.port;
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Добавление двух серверов задач</title>
<programlisting role="php">
<![CDATA[
<?php
# Создаем клиентский объект
$gmclient= new GearmanClient();
# Добавляем два сервера задач, первый из них работает с портом 4730 по умолчанию
$gmclient->addServer("10.0.0.1");
$gmclient->addServer("10.0.0.2", 7003);
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>GearmanClient::addServers</methodname></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,100 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8b6d169424ff189bb563ef4c3f35f8adff3f42c5 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<refentry xml:id="gearmanclient.addservers" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>GearmanClient::addServers</refname>
<refpurpose>Добавить список серверов задач для клиента</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>bool</type><methodname>GearmanClient::addServers</methodname>
<methodparam choice="opt"><type>string</type><parameter>servers</parameter><initializer>127.0.0.1:4730</initializer></methodparam>
</methodsynopsis>
<para>
Добавляет список серверов задач, которые могут использоваться для выполнения задачи.
Никаких операций ввода-вывода c сокетом здесь не происходит. Сервера просто добавляются к полному списку серверов.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>servers</parameter></term>
<listitem>
<para>
Список серверов, разделенных запятыми. Каждый сервер указан в формате &apos;<literal>host:port</literal>&apos;.
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
&return.success;
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Добавление двух серверов задач</title>
<programlisting role="php">
<![CDATA[
<?php
# Создаем наш клиентский объект
$gmclient= new GearmanClient();
# Добавляем несколько серверов задач, первый из которых работает с портом 4730 по умолчанию
$gmclient->addServers("10.0.0.1,10.0.0.2:7003");
?>
]]>
</programlisting>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>GearmanClient::addServer</methodname></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,195 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8b6d169424ff189bb563ef4c3f35f8adff3f42c5 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<refentry xml:id="gearmanclient.addtask" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>GearmanClient::addTask</refname>
<refpurpose>Добавить задачу, которая будет выполнена в параллельном режиме</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>GearmanTask</type><methodname>GearmanClient::addTask</methodname>
<methodparam><type>string</type><parameter>function_name</parameter></methodparam>
<methodparam><type>string</type><parameter>workload</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter role="reference">context</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>unique</parameter></methodparam>
</methodsynopsis>
<para>
Добавляет задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач,
которые будут работать параллельно, а затем вызовите <methodname>GearmanClient::runTasks</methodname>
для выполнения работ. Обратите внимание, что должно быть достаточное количество работников
для одновременного выполнения всех задач.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>function_name</parameter></term>
<listitem>
<para>
&gearman.parameter.functionname;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>workload</parameter></term>
<listitem>
<para>
&gearman.parameter.workload;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>context</parameter></term>
<listitem>
<para>
&gearman.parameter.context;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>unique</parameter></term>
<listitem>
<para>
&gearman.parameter.unique;
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Объект <classname>GearmanTask</classname> или &false;, если задача не может быть добавлена.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Основное представление двух задач</title>
<programlisting role="php">
<![CDATA[
<?php
# Создаем нашего клиента
$gmclient= new GearmanClient();
# Добавляем сервер задач по умолчанию
$gmclient->addServer();
# Добавляем задачу для выполнения функции reverse, переворачивающей строку "Hello World!"
$gmclient->addTask("reverse", "Hello World!", null, "1");
# Добавляем другую задачу, для выполнения функции reverse, переворачивающей строку "!dlroW olleH"
$gmclient->addTask("reverse", "!dlroW olleH", null, "2");
# Устанавливаем функцию, которая будет вызвана по завершению работы
$gmclient->setCompleteCallback("complete");
# Выполняем задачи
$gmclient->runTasks();
function complete($task)
{
print "Выполнено: " . $task->unique() . ", " . $task->data() . "\n";
}
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Выполнено: 2, Hello World!
Выполнено: 1, !dlroW olleH
]]>
</screen>
</example>
<example>
<title>Основное представление двух задач с передачей контекста приложения</title>
<programlisting role="php">
<![CDATA[
<?php
$client = new GearmanClient();
$client->addServer();
# Добавим несколько задач и местоположение результатов
$results = array();
$client->addTask("reverse", "Hello World!", &$results, "t1");
$client->addTask("reverse", "!dlroW olleH", &$results, "t2");
$client->setCompleteCallback("reverse_complete");
$client->runTasks();
# Результаты должны быть заполнены из обратного вызова
foreach ($results as $id => $result)
echo $id . ": " . $result['handle'] . ", " . $result['data'] . "\n";
function reverse_complete($task, $results)
{
$results[$task->unique()] = array("handle"=>$task->jobHandle(), "data"=>$task->data());
}
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
t2: H.foo:21, Hello World!
t1: H:foo:22, !dlroW olleH
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>GearmanClient::addTaskHigh</methodname></member>
<member><methodname>GearmanClient::addTaskLow</methodname></member>
<member><methodname>GearmanClient::addTaskBackground</methodname></member>
<member><methodname>GearmanClient::addTaskHighBackground</methodname></member>
<member><methodname>GearmanClient::addTaskLowBackground</methodname></member>
<member><methodname>GearmanClient::runTasks</methodname></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,285 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 29a9a52e9545f7193afc716db1a59b15e3b8b1d2 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<refentry xml:id="gearmanclient.addtaskbackground" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>GearmanClient::addTaskBackground</refname>
<refpurpose>Добавить фоновую задачу для работы в параллельном режиме</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>GearmanTask</type><methodname>GearmanClient::addTaskBackground</methodname>
<methodparam><type>string</type><parameter>function_name</parameter></methodparam>
<methodparam><type>string</type><parameter>workload</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter role="reference">context</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>unique</parameter></methodparam>
</methodsynopsis>
<para>
Добавляет фоновую задачу для параллельной работы с другими задачами. Вызовите этот метод для всех задач,
которые будут работать параллельно, а затем вызовите <methodname>GearmanClient::runTasks</methodname> для
выполнения работ.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>function_name</parameter></term>
<listitem>
<para>
&gearman.parameter.functionname;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>workload</parameter></term>
<listitem>
<para>
&gearman.parameter.workload;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>context</parameter></term>
<listitem>
<para>
&gearman.parameter.context;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>unique</parameter></term>
<listitem>
<para>
&gearman.parameter.unique;
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Объект <classname>GearmanTask</classname> или &false;, если задача не может быть добавлена.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Две задачи, одна в фоновом режиме другая нет</title>
<para>
Этот пример иллюстрирует различие между выполнением фоновой задачи и
нормальной задачей. Клиент добавляет две задачи для выполнения одних и тех же функций,
но одна добавлена с помощью <methodname>addTaskBackground</methodname>. Обратный вызов
установлен так, чтобы выполнение задания можно было проследить. Простой рабочий с
искусственной задержкой сообщает статус выполнения задания, и клиент понимает это
посредством обратного вызова. Два рабочих запущены для этого примера. Обратите внимание,
что фоновая задача не показывается в клиентском выводе.
</para>
<programlisting role="php">
<![CDATA[
<?php
# Клиентский скрипт
# Создание нашего клиента
$gmc= new GearmanClient();
# Добавление сервера задач по умолчанию
$gmc->addServer();
# Установка нескольких обратных вызовов. Таким образом, мы сможем отслеживать выполнение
$gmc->setCompleteCallback("reverse_complete");
$gmc->setStatusCallback("reverse_status");
# Добавление задачи для функции reverse
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
# Добавление другой задачи, но она предназначена для запуска в фоне
$task= $gmc->addTaskBackground("reverse", "!dlroW olleH", null, "2");
if (! $gmc->runTasks())
{
echo "Ошибка " . $gmc->error() . "\n";
exit;
}
echo "Выполнено\n";
function reverse_status($task)
{
echo "Статус: " . $task->unique() . ", " . $task->jobHandle() . " - " . $task->taskNumerator() .
"/" . $task->taskDenominator() . "\n";
}
function reverse_complete($task)
{
echo "Завершено: " . $task->unique() . ", " . $task->data() . "\n";
}
?>
]]>
</programlisting>
<programlisting role="php">
<![CDATA[
<?php
# Скрипт работника
echo "Начинаем\n";
# Создаем наш объект работника
$gmworker= new GearmanWorker();
# Добавление сервера задач по умолчанию (localhost).
$gmworker->addServer();
# Регистрируем функцию reverse на сервере
$gmworker->addFunction("reverse", "reverse_fn");
print "Ожидание задачи...\n";
while($gmworker->work())
{
if ($gmworker->returnCode() != GEARMAN_SUCCESS)
{
echo "возвратный код: " . $gmworker->returnCode() . "\n";
break;
}
}
function reverse_fn($job)
{
echo "Получена задача: " . $job->handle() . "\n";
$workload = $job->workload();
$workload_size = $job->workloadSize();
echo "Рабочая нагрузка: $workload ($workload_size)\n";
# В этом цикле отображения статуса нет необходимости. Просто для демонстрации как это работает
for ($x= 0; $x < $workload_size; $x++)
{
echo "Отправка статуса: " . ($x + 1) . "/$workload_size выполнено\n";
$job->sendStatus($x+1, $workload_size);
$job->sendData(substr($workload, $x, 1));
sleep(1);
}
$result= strrev($workload);
echo "Результат: $result\n";
# Возвращаем то, что мы хотим вернуть клиенту
return $result;
}
?>
]]>
</programlisting>
<para>
Вывод рабочего для двух запущенных работников:
</para>
<screen>
<![CDATA[
Получена задача: H:foo.local:65
Рабочая нагрузка: !dlroW olleH (12)
1/12 выполнено
Получена задача: H:foo.local:66
Рабочая нагрузка: Hello World! (12)
1/12 выполнено
2/12 выполнено
2/12 выполнено
3/12 выполнено
3/12 выполнено
4/12 выполнено
4/12 выполнено
5/12 выполнено
5/12 выполнено
6/12 выполнено
6/12 выполнено
7/12 выполнено
7/12 выполнено
8/12 выполнено
8/12 выполнено
9/12 выполнено
9/12 выполнено
10/12 выполнено
10/12 выполнено
11/12 выполнено
11/12 выполнено
12/12 выполнено
12/12 выполнено
Результат: !dlroW olleH
Результат: Hello World!
]]>
</screen>
<para>
Клиент выводит:
</para>
<screen>
<![CDATA[
Статус: 1, H:foo.local:66 - 1/12
Статус: 1, H:foo.local:66 - 2/12
Статус: 1, H:foo.local:66 - 3/12
Статус: 1, H:foo.local:66 - 4/12
Статус: 1, H:foo.local:66 - 5/12
Статус: 1, H:foo.local:66 - 6/12
Статус: 1, H:foo.local:66 - 7/12
Статус: 1, H:foo.local:66 - 8/12
Статус: 1, H:foo.local:66 - 9/12
Статус: 1, H:foo.local:66 - 10/12
Статус: 1, H:foo.local:66 - 11/12
Статус: 1, H:foo.local:66 - 12/12
Завершено: 1, !dlroW olleH
Выполнено
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>GearmanClient::addTask</methodname></member>
<member><methodname>GearmanClient::addTaskHigh</methodname></member>
<member><methodname>GearmanClient::addTaskLow</methodname></member>
<member><methodname>GearmanClient::addTaskHighBackground</methodname></member>
<member><methodname>GearmanClient::addTaskLowBackground</methodname></member>
<member><methodname>GearmanClient::runTasks</methodname></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,167 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8b6d169424ff189bb563ef4c3f35f8adff3f42c5 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<refentry xml:id="gearmanclient.addtaskhigh" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>GearmanClient::addTaskHigh</refname>
<refpurpose>Добавить высокоприоритетную задачу для работы в параллельном режиме</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>GearmanTask</type><methodname>GearmanClient::addTaskHigh</methodname>
<methodparam><type>string</type><parameter>function_name</parameter></methodparam>
<methodparam><type>string</type><parameter>workload</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter role="reference">context</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>unique</parameter></methodparam>
</methodsynopsis>
<para>
Добавляет высокоприоритетную задачу для параллельной работы с другими задачами. Вызовите этот метод
для всех высокоприоритетных задач, которые будут работать параллельно, а затем вызовите
<methodname>GearmanClient::runTasks</methodname> для выполнения работ. Задачи с высоким приоритетом
будут выбраны из очереди раньше задач с нормальным или низким приоритетом.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>function_name</parameter></term>
<listitem>
<para>
&gearman.parameter.functionname;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>workload</parameter></term>
<listitem>
<para>
&gearman.parameter.workload;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>context</parameter></term>
<listitem>
<para>
&gearman.parameter.context;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>unique</parameter></term>
<listitem>
<para>
&gearman.parameter.unique;
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Объект <classname>GearmanTask</classname> или &false;, если задача не может быть добавлена.
</para>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<para>
<example>
<title>Высокоприоритетная задача вместе с двумя нормальными задачами</title>
<para>
Высокоприоритетная задача включена среди двух других задач. Доступен единственный рабочий,
так что задачи запускаются одна за другой, высокоприоритетные задачи
выполняются в первую очередь.
</para>
<programlisting role="php">
<![CDATA[
<?php
# создание клиента
$gmc= new GearmanClient();
# добавление сервера задач по умолчанию
$gmc->addServer();
# установка обратной функции для сигнализации о завершении задачи
$gmc->setCompleteCallback("reverse_complete");
# добавление задач, одна из которых высокоприоритетная
$task= $gmc->addTask("reverse", "Hello World!", null, "1");
$task= $gmc->addTaskHigh("reverse", "!dlroW olleH", null, "2");
$task= $gmc->addTask("reverse", "Hello World!", null, "3");
if (! $gmc->runTasks())
{
echo "Ошибка " . $gmc->error() . "\n";
exit;
}
echo "Выполнено\n";
function reverse_complete($task)
{
echo "Завершено: " . $task->unique() . ", " . $task->data() . "\n";
}
?>
]]>
</programlisting>
&example.outputs.similar;
<screen>
<![CDATA[
Завершено: 2, Hello World!
Завершено: 3, !dlroW olleH
Завершено: 1, !dlroW olleH
Выполнено
]]>
</screen>
</example>
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>GearmanClient::addTask</methodname></member>
<member><methodname>GearmanClient::addTaskLow</methodname></member>
<member><methodname>GearmanClient::addTaskBackground</methodname></member>
<member><methodname>GearmanClient::addTaskHighBackground</methodname></member>
<member><methodname>GearmanClient::addTaskLowBackground</methodname></member>
<member><methodname>GearmanClient::runTasks</methodname></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,111 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8b6d169424ff189bb563ef4c3f35f8adff3f42c5 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<refentry xml:id="gearmanclient.addtaskhighbackground" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>GearmanClient::addTaskHighBackground</refname>
<refpurpose>Добавить высокоприоритетную фоновую задачу для работы в параллельном режиме</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<methodsynopsis>
<modifier>public</modifier> <type>GearmanTask</type><methodname>GearmanClient::addTaskHighBackground</methodname>
<methodparam><type>string</type><parameter>function_name</parameter></methodparam>
<methodparam><type>string</type><parameter>workload</parameter></methodparam>
<methodparam choice="opt"><type>mixed</type><parameter role="reference">context</parameter></methodparam>
<methodparam choice="opt"><type>string</type><parameter>unique</parameter></methodparam>
</methodsynopsis>
<para>
Добавляет высокоприоритетную фоновую задачу для параллельной работы с другими задачами.
Вызовите этот метод для всех задач, которые будут работать параллельно, а затем вызовите
<methodname>GearmanClient::runTasks</methodname> для выполнения работ.
Задачи с высоким приоритетом будут выбраны из очереди раньше задач с нормальным или низким приоритетом.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<para>
<variablelist>
<varlistentry>
<term><parameter>function_name</parameter></term>
<listitem>
<para>
&gearman.parameter.functionname;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>workload</parameter></term>
<listitem>
<para>
&gearman.parameter.workload;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>context</parameter></term>
<listitem>
<para>
&gearman.parameter.context;
</para>
</listitem>
</varlistentry>
<varlistentry>
<term><parameter>unique</parameter></term>
<listitem>
<para>
&gearman.parameter.unique;
</para>
</listitem>
</varlistentry>
</variablelist>
</para>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Объект <classname>GearmanTask</classname> или &false;, если задача не может быть добавлена.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<para>
<simplelist>
<member><methodname>GearmanClient::addTask</methodname></member>
<member><methodname>GearmanClient::addTaskHigh</methodname></member>
<member><methodname>GearmanClient::addTaskLow</methodname></member>
<member><methodname>GearmanClient::addTaskBackground</methodname></member>
<member><methodname>GearmanClient::addTaskLowBackground</methodname></member>
<member><methodname>GearmanClient::runTasks</methodname></member>
</simplelist>
</para>
</refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->

View File

@ -0,0 +1,69 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- EN-Revision: 8b6d169424ff189bb563ef4c3f35f8adff3f42c5 Maintainer: mch Status: ready -->
<!-- Reviewed: no -->
<!-- $Revision$ -->
<phpdoc:classref xml:id="class.gearmanworker" xmlns:phpdoc="http://php.net/ns/phpdoc" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xi="http://www.w3.org/2001/XInclude">
<title>Класс GearmanWorker</title>
<titleabbrev>GearmanWorker</titleabbrev>
<partintro>
<!-- {{{ GearmanWorker intro -->
<section xml:id="gearmanworker.intro">
&reftitle.intro;
<para>
Описание класса.
</para>
</section>
<!-- }}} -->
<section xml:id="gearmanworker.synopsis">
&reftitle.classsynopsis;
<!-- {{{ Synopsis -->
<classsynopsis>
<ooclass><classname>GearmanWorker</classname></ooclass>
<!-- {{{ Class synopsis -->
<classsynopsisinfo>
<ooclass>
<classname>GearmanWorker</classname>
</ooclass>
</classsynopsisinfo>
<!-- }}} -->
<classsynopsisinfo role="comment">&Methods;</classsynopsisinfo>
<xi:include xpointer="xmlns(db=http://docbook.org/ns/docbook) xpointer(id('class.gearmanworker')/db:refentry/db:refsect1[@role='description']/descendant::db:methodsynopsis[1])" />
</classsynopsis>
<!-- }}} -->
</section>
</partintro>
&reference.gearman.entities.gearmanworker;
</phpdoc:classref>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->