mirror of
https://github.com/php/doc-ru.git
synced 2026-03-26 00:32:15 +01:00
176 lines
7.2 KiB
XML
176 lines
7.2 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
||
<!-- EN-Revision: f7e33278a909d7f7bf491f77cb10c93581091736 Maintainer: rjhdby Status: ready -->
|
||
<!-- Reviewed: no -->
|
||
<refentry xml:id="function.msg-send" xmlns="http://docbook.org/ns/docbook">
|
||
<refnamediv>
|
||
<refname>msg_send</refname>
|
||
<refpurpose>Отправляет сообщение в очередь сообщений</refpurpose>
|
||
</refnamediv>
|
||
|
||
<refsect1 role="description">
|
||
&reftitle.description;
|
||
<methodsynopsis>
|
||
<type>bool</type><methodname>msg_send</methodname>
|
||
<methodparam><type>SysvMessageQueue</type><parameter>queue</parameter></methodparam>
|
||
<methodparam><type>int</type><parameter>message_type</parameter></methodparam>
|
||
<methodparam><type class="union"><type>string</type><type>int</type><type>float</type><type>bool</type></type><parameter>message</parameter></methodparam>
|
||
<methodparam choice="opt"><type>bool</type><parameter>serialize</parameter><initializer>&true;</initializer></methodparam>
|
||
<methodparam choice="opt"><type>bool</type><parameter>blocking</parameter><initializer>&true;</initializer></methodparam>
|
||
<methodparam choice="opt"><type>int</type><parameter role="reference">error_code</parameter><initializer>&null;</initializer></methodparam>
|
||
</methodsynopsis>
|
||
<para>
|
||
Функция <function>msg_send</function> отправляет сообщение <parameter>message</parameter>
|
||
с типом <parameter>message_type</parameter> (должно быть больше 0) в очередь сообщений,
|
||
которую указали в параметре <parameter>queue</parameter>.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="parameters">
|
||
&reftitle.parameters;
|
||
<para>
|
||
<variablelist>
|
||
<varlistentry>
|
||
<term><parameter>queue</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Очередь сообщений.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>message_type</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Тип сообщения. Значение должно быть больше 0.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>message</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Тело сообщения.
|
||
</para>
|
||
<note>
|
||
<para>
|
||
Если для параметра <parameter>serialize</parameter> установили значение &false;,
|
||
он ДОЛЖЕН принадлежать типу: <type>string</type>, <type>int</type>, <type>float</type>
|
||
или <type>bool</type>. Иначе функция выведет предупреждение.
|
||
</para>
|
||
</note>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>serialize</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Необязательный параметр <parameter>serialize</parameter> управляет тем,
|
||
как будет отправлено сообщение <parameter>message</parameter>.
|
||
По умолчанию <parameter>serialize</parameter> имеет значение &true;,
|
||
что означает сериализацию <parameter>message</parameter> перед отправкой тем же
|
||
механизмом, который используется модулем обработки сессий.
|
||
Это позволяет отправлять сложные массивы и объекты в другие PHP-скрипты,
|
||
или, если вы используете сериализацию WDDX, в другие совместимые с WDDX клиенты.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>blocking</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Если помещаемое в очередь сообщение слишком велико, ваш скрипт будет ожидать
|
||
прочтения сообщений другим процессом и освобождения места под отправляемое вами
|
||
сообщение.
|
||
Это называется блокировкой; вы можете отключить эту возможность,
|
||
установив для <parameter>blocking</parameter> значение &false;, в этом случае
|
||
<function>msg_send</function> будет немедленно возвращать &false; если сообщение
|
||
слишком велико, и устанавливать необязательный параметр <parameter>error_code</parameter>
|
||
в значение <constant>MSG_EAGAIN</constant>, что будет указывать вам на
|
||
необходимость попробовать отправить сообщение несколько позже.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
<varlistentry>
|
||
<term><parameter>error_code</parameter></term>
|
||
<listitem>
|
||
<para>
|
||
Если функция отработает неудачно, то этот код будет записан в системную переменную errno.
|
||
</para>
|
||
</listitem>
|
||
</varlistentry>
|
||
</variablelist>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="returnvalues">
|
||
&reftitle.returnvalues;
|
||
<para>
|
||
&return.success;
|
||
</para>
|
||
<para>
|
||
При успешном завершении структура данных очереди сообщений обновится следующим образом:
|
||
элемент <parameter>msg_lspid</parameter> будет содержать идентификатор вызвавшего процесса,
|
||
<parameter>msg_qnum</parameter> увеличится на 1,
|
||
а <parameter>msg_stime</parameter> будет содержать текущее время.
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="changelog">
|
||
&reftitle.changelog;
|
||
<para>
|
||
<informaltable>
|
||
<tgroup cols="2">
|
||
<thead>
|
||
<row>
|
||
<entry>&Version;</entry>
|
||
<entry>&Description;</entry>
|
||
</row>
|
||
</thead>
|
||
<tbody>
|
||
<row>
|
||
<entry>8.0.0</entry>
|
||
<entry>
|
||
Параметр <parameter>queue</parameter> теперь ожидает экземпляр класса <classname>SysvMessageQueue</classname>;
|
||
раньше ожидался ресурс (<type>resource</type>).
|
||
</entry>
|
||
</row>
|
||
</tbody>
|
||
</tgroup>
|
||
</informaltable>
|
||
</para>
|
||
</refsect1>
|
||
|
||
<refsect1 role="seealso">
|
||
&reftitle.seealso;
|
||
<para>
|
||
<simplelist>
|
||
<member><function>msg_remove_queue</function></member>
|
||
<member><function>msg_receive</function></member>
|
||
<member><function>msg_stat_queue</function></member>
|
||
<member><function>msg_set_queue</function></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
|
||
-->
|