函數(shù)名:msg_send()
適用版本:PHP 4 >= 4.3.0, PHP 5, PHP 7
函數(shù)描述:msg_send() 函數(shù)用于向消息隊(duì)列發(fā)送消息。
用法:
bool msg_send ( resource $queue , int $msgtype , mixed $message [, bool $serialize = TRUE [, bool $blocking = TRUE [, int &$errorcode ]]] )
參數(shù):
$queue
:消息隊(duì)列的標(biāo)識(shí)符,使用 msg_get_queue() 函數(shù)獲取。$msgtype
:消息類(lèi)型,整數(shù)類(lèi)型。$message
:要發(fā)送的消息內(nèi)容,可以是任何類(lèi)型的數(shù)據(jù)。$serialize
(可選):如果設(shè)置為 TRUE(默認(rèn)值),則消息將被序列化。如果設(shè)置為 FALSE,則消息將按照原始格式發(fā)送。$blocking
(可選):如果設(shè)置為 TRUE(默認(rèn)值),則在消息隊(duì)列已滿的情況下,msg_send() 函數(shù)將阻塞直到隊(duì)列可用。如果設(shè)置為 FALSE,則 msg_send() 函數(shù)會(huì)立即返回,并在消息隊(duì)列已滿的情況下返回 FALSE。$errorcode
(可選):如果發(fā)送失敗,將返回錯(cuò)誤代碼。
返回值:
- 如果成功發(fā)送消息,則返回 TRUE。
- 如果發(fā)送消息失敗,則返回 FALSE。
示例:
// 創(chuàng)建一個(gè)消息隊(duì)列
$queue = msg_get_queue(12345);
// 定義消息類(lèi)型
$msgtype = 1;
// 要發(fā)送的消息內(nèi)容
$message = "Hello, world!";
// 發(fā)送消息到隊(duì)列
if (msg_send($queue, $msgtype, $message)) {
echo "消息發(fā)送成功!";
} else {
echo "消息發(fā)送失??!";
}
注意事項(xiàng):
- 在使用 msg_send() 函數(shù)之前,需要先創(chuàng)建一個(gè)消息隊(duì)列,可以使用 msg_get_queue() 函數(shù)創(chuàng)建。
- 消息類(lèi)型可以是任何整數(shù)類(lèi)型,用于在接收消息時(shí)進(jìn)行區(qū)分。
- 默認(rèn)情況下,消息會(huì)被序列化發(fā)送,如果需要發(fā)送原始格式的消息,可以將
$serialize
參數(shù)設(shè)置為 FALSE。 - 默認(rèn)情況下,如果消息隊(duì)列已滿,msg_send() 函數(shù)會(huì)阻塞直到隊(duì)列可用,可以通過(guò)將
$blocking
參數(shù)設(shè)置為 FALSE 來(lái)改變這個(gè)行為。 - 如果發(fā)送消息失敗,可以通過(guò)引用傳遞
$errorcode
參數(shù)來(lái)獲取錯(cuò)誤代碼。