• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

PHP msg_stat_queue函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了PHP中msg_stat_queue函数的典型用法代码示例。如果您正苦于以下问题:PHP msg_stat_queue函数的具体用法?PHP msg_stat_queue怎么用?PHP msg_stat_queue使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了msg_stat_queue函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的PHP代码示例。

示例1: __construct

 public function __construct(Config $config)
 {
     $this->ownerPid = $config->get('ownerPid');
     $this->ipcKey = new IpcKey($this->ownerPid, str_replace('\\', '_', get_class($this)));
     $this->id = msg_get_queue($this->ipcKey->generate());
     $this->stat = msg_stat_queue($this->id);
 }
开发者ID:ackintosh,项目名称:snidel,代码行数:7,代码来源:AbstractQueue.php


示例2: mqPeek

 /**
     Peek at a Message Queue Return the Number of Messages
 */
 static function mqPeek($name)
 {
     $mq = msg_get_queue(self::_ftok($name));
     $stat = msg_stat_queue($mq);
     return $stat['msg_qnum'];
     // Items in the Queue
 }
开发者ID:edoceo,项目名称:radix,代码行数:10,代码来源:IPC.php


示例3: fillQueueGeneralInformation

 private function fillQueueGeneralInformation()
 {
     $status = msg_stat_queue($this->resource);
     $this->ownerId = $status['msg_perm.uid'];
     $this->ownerGroupId = $status['msg_perm.gid'];
     $this->messageAllowedSize = $status['msg_qbytes'];
 }
开发者ID:marcusesa,项目名称:microqueue,代码行数:7,代码来源:Queue.php


示例4: count

 /**
  * {@inheritdoc}
  */
 public function count()
 {
     $data = msg_stat_queue($this->getQueue());
     if (!is_array($data)) {
         throw new QueueException($this, 'Failed to get the meta data for the queue.');
     }
     return $data['msg_qnum'];
 }
开发者ID:rybakit,项目名称:phive-queue,代码行数:11,代码来源:SysVQueue.php


示例5: putMessage

 public function putMessage(&$message)
 {
     $messageId = $this->storage->saveMessage($message);
     // notify queue via ipc
     $ipcStat = msg_stat_queue($this->ipcChannel);
     if (is_array($ipcStat) && $ipcStat['msg_qnum'] < 5) {
         msg_send($this->ipcChannel, 1, '*', false, false, $ipcError);
     }
     return $messageId;
 }
开发者ID:s0enke,项目名称:dropr,代码行数:10,代码来源:Client.php


示例6: addMessage

 /**
  * addMessage: Given a key, store a new message into our queue.
  *
  * @param $key string - Reference to the message (PK)
  * @param $data array - Some data to pass into the message
  */
 public static function addMessage($key, $data = array())
 {
     # What to send
     $message = new Message($key, $data);
     # Try to send the message
     if (msg_send(self::$queue, QUEUE_TYPE_START, $message)) {
         print_r(msg_stat_queue(self::$queue));
     } else {
         echo "Error adding to the queue";
     }
 }
开发者ID:sergeypavlenko,项目名称:queue,代码行数:17,代码来源:queue.php


示例7: initQueue

 public static function initQueue($queue_file)
 {
     if (!file_exists($queue_file)) {
         touch($queue_file);
     }
     $msg_id = msg_get_queue(ftok($queue_file, 'r'), 0666);
     // Remove any messages in queue
     $queue = msg_stat_queue($msg_id);
     if ($queue['msg_qnum'] > 0) {
         msg_remove_queue($msg_id);
         $msg_id = msg_get_queue(ftok($queue_file, 'r'), 0666);
     }
     return $msg_id;
 }
开发者ID:blamh,项目名称:ipc_mailbox,代码行数:14,代码来源:Receiver.php


示例8: showAllDaemon

 private function showAllDaemon()
 {
     $messageQueueKey = ftok(App::path('cache') . "/queue/daemon.queue", "a");
     $messageQueue = msg_get_queue($messageQueueKey, 0666);
     $messageQueueState = msg_stat_queue($messageQueue);
     $msgCount = $messageQueueState['msg_qnum'];
     if (0 === $msgCount) {
         Console::line("None service is running.");
     }
     while ($msgCount > 0) {
         /** @var MessageQueue $message */
         msg_receive($messageQueue, 0, $messageType, 1024, $message, true, MSG_IPC_NOWAIT);
         Console::line("PID:{$message->pid},NAME:{$message->name},TIME:" . date("Y-m-d H:i:s", $message->timestamp) . "Alive.");
         $messageQueueState = msg_stat_queue($messageQueue);
         $msgCount = $messageQueueState['msg_qnum'];
     }
 }
开发者ID:sanzhumu,项目名称:xaircraft1.1,代码行数:17,代码来源:ServiceCommand.php


示例9: __destruct

 /**
  * The class destructor.
  */
 public function __destruct()
 {
     parent::__destruct();
     if ($this->iAmParent()) {
         $desiredType = 1;
         $option_receive = MSG_IPC_NOWAIT;
         $stats = msg_stat_queue($this->queueResourceResponse);
         $queueMessageSize = $stats['msg_qbytes'];
         // the Report
         $messageReport = '';
         // receive the report
         $stats = msg_stat_queue($this->queueResourceResponse);
         while ($stats['msg_qnum']) {
             //for($i=0;count($all_servers);$i++){
             $status = msg_receive($this->queueResourceResponse, $desiredType, $type, $queueMessageSize, $mixed, true, $option_receive);
             if ($status == true) {
                 $messageReport .= $mixed['message'];
                 if ($mixed['return'] < 0) {
                     // check if server counldn't do the backups because shutdown doesn't work
                     if ($mixed['error'] && $mixed['error']['error']['error'] == '_ERR_VM_BACKUP_STILL_RUNNING_') {
                         $etva_server = $mixed['server'];
                         $this->log("[WARN] Receive error that VM '" . $etva_server->getName() . "' couldn't make backup beacuse is still running, so i will try start again...");
                         $etva_node = $etva_server->getEtvaNode();
                         if ($etva_node) {
                             $res_start = $etva_node->soapSend(EtvaServer_VA::SERVER_START, array('uuid' => $etva_server->getUuid(), 'name' => $etva_server->getName()));
                             $this->log("[WARN] Start '" . $etva_server->getName() . "' VM and receive the following message: " . print_r($res_start, true));
                         }
                     }
                 }
             } else {
                 $err_m = "[ERROR] Receive error when wait for response... " . print_r($err, true);
                 $messageReport .= $err_m . "\r\n";
                 $this->log($err_m);
             }
             $stats = msg_stat_queue($this->queueResourceResponse);
         }
         msg_remove_queue($this->queueResourceResponse);
         //$this->log($messageReport);
         $this->sendReport($messageReport);
     }
 }
开发者ID:ketheriel,项目名称:ETVA,代码行数:44,代码来源:nodeBackupserversTask.class.php


示例10: count

 /**
  * {@inheritdoc}
  */
 public function count()
 {
     $stat = msg_stat_queue($this->queue);
     return $stat['msg_qnum'];
 }
开发者ID:Nik-ADA,项目名称:concurrent,代码行数:8,代码来源:PosixSemaphore.php


示例11: define

<?php

// link: http://www.ebrueggeman.com/blog/creating-a-message-queue-in-php
// filename: add_to_queue.php
//creating a queue requires we come up with an arbitrary number
define('QUEUE', 21671);
//add message to queue
$queue = msg_get_queue(QUEUE);
// Create dummy message object
$object = new stdclass();
$object->name = 'foo';
$object->id = uniqid();
$object->data = array('name' => 'Ligia');
//try to add message to queue
if (msg_send($queue, 1, $object)) {
    echo "added to queue  \n";
    // you can use the msg_stat_queue() function to see queue status
    print_r(msg_stat_queue($queue));
} else {
    echo "could not add message to queue \n";
}
开发者ID:josue,项目名称:zilla-queues,代码行数:21,代码来源:send.php


示例12: stats

 public function stats()
 {
     return msg_stat_queue($this->queue);
 }
开发者ID:jovination,项目名称:phork,代码行数:4,代码来源:Channel.php


示例13: json_decode

$json = json_decode(file_get_contents($file));
foreach ($json->queue as $queue) {
    ?>
	<tr>
		<td><?php 
    echo $queue;
    ?>
</td>
		<td>
			<?php 
    if (msg_queue_exists($queue)) {
        echo "ON";
    } else {
        echo "OFF";
    }
    ?>
		</td>
		<td>
			<?php 
    if (msg_queue_exists($queue)) {
        $openqueue = msg_get_queue($queue);
        echo msg_stat_queue($openqueue)['msg_qnum'];
    } else {
        echo "---";
    }
    ?>
			
		</td>
	</tr>
<?php 
}
开发者ID:juanber84,项目名称:phpqueue,代码行数:31,代码来源:status.php


示例14: count

 public function count($queueName)
 {
     $stats = msg_stat_queue($this->getQueue($queueName));
     return $stats['msg_qnum'];
 }
开发者ID:riverline,项目名称:worker-bundle,代码行数:5,代码来源:Semaphore.php


示例15: non_blocking_in

 public function non_blocking_in($msg)
 {
     if ($this->closed || !msg_queue_exists($this->key)) {
         return self::CLOSED;
     }
     $shm = new Message();
     $shm->store($msg);
     $error = 0;
     @msg_send($this->ipc, 1, $shm->key(), false, false, $error);
     if (MSG_EAGAIN === $error) {
         $shmAbortedMessage = new Message($shm->key());
         $shmAbortedMessage->destroy();
         return false;
     }
     ++$this->msg_count;
     $first_loop = true;
     do {
         $data = msg_stat_queue($this->ipc);
         if (!$first_loop && 0 == $data['msg_qnum']) {
             break;
         }
         $first_loop = false;
     } while (true);
     return true;
 }
开发者ID:straiway,项目名称:fmt,代码行数:25,代码来源:csp.php


示例16: exit

    exit(1);
}
$queue = msg_get_queue($token);
var_dump(msg_queue_exists($token));
$pid = pcntl_fork();
if ($pid == 0) {
    $q = msg_get_queue($token);
    msg_send($q, 2, "start");
    msg_receive($q, 1, $type, 100, $msg);
    msg_send($q, 2, $msg);
    // echo
    exit(0);
}
msg_receive($queue, 2, $type, 100, $msg);
var_dump($msg);
msg_send($queue, 1, "ok");
msg_receive($queue, 2, $type, 100, $msg);
var_dump($msg);
$ret = @msg_send($queue, 0, 'msg', false, false, $s_error_code);
var_dump($ret);
var_dump(22 === $s_error_code);
// 22 - invalid argument
$ret = msg_receive($queue, 0, $type, 100, $msg, false, MSG_IPC_NOWAIT, $r_error_code);
var_dump($ret);
var_dump(MSG_ENOMSG === $r_error_code);
$ret = msg_stat_queue($queue);
var_dump($ret[$s_msg_qnum]);
msg_set_queue($queue, array("msg_perm.mode" => 0666));
msg_remove_queue($queue);
pcntl_waitpid($pid, $status);
unlink($filename);
开发者ID:badlamer,项目名称:hhvm,代码行数:31,代码来源:message_queue.php


示例17: print_r

// place two messages on the queue
if (!msg_send($key_t, 1, 'This is message #1', true, true, $msg_err)) {
    echo "Msg not sent because {$msg_err}\n";
}
if (!msg_send($key_t, 1, 'This is message #2 ', true, true, $msg_err)) {
    echo "Msg not sent because {$msg_err}\n";
}
// lets look at the queue structure 'msg_qnum' is really what we want to see
// it should be '2'
print_r(msg_stat_queue($key_t));
// get rid of the queue
//msg_remove_queue ($key_t);
sleep(1000);
// recieve-msg.php
if (msg_receive($key_t, 1, $msg_type, 16384, $msg, true, 0, $msg_error)) {
    echo "{$msg}\n";
    // prints 'This is message #1'
} else {
    echo "Received {$msg_error} fetching message\n";
}
// look at the structure again, ms_qnum should be '1'
print_r(msg_stat_queue($key_t));
if (msg_receive($key_t, 2, $msg_type, 16384, $msg, true, 0, $msg_error)) {
    echo "{$msg}\n";
    // prints 'This is message #2'
} else {
    echo "Received {$msg_error} fetching message\n";
}
// look at the structure again, ms_qnum should be '0', no more messages on the queue
print_r(msg_stat_queue($key_t));
开发者ID:silentred,项目名称:learning-path,代码行数:30,代码来源:msg-queue.php


示例18: stat

 function stat()
 {
     $this->init();
     return msg_stat_queue($this->seg);
 }
开发者ID:rakesh-mohanta,项目名称:scalr,代码行数:5,代码来源:ShmQueue.php


示例19: getMeta

 public function getMeta()
 {
     return msg_stat_queue(msg_get_queue($this->getOption('key')));
 }
开发者ID:rybakit,项目名称:phive-queue,代码行数:4,代码来源:SysVHandler.php


示例20: ftok

$message_queue_key = ftok(__FILE__, 'a');
$message_queue = msg_get_queue($message_queue_key, 0666);
$pids = array();
for ($i = 0; $i < 5; $i++) {
    // 创建子进程
    $pids[$i] = pcntl_fork();
    if ($pids[$i]) {
        // 父进程会得到子进程号,所以这里是父进程执行的逻辑
        echo "No.{$i} child process was created, the pid is {$pids[$i]}\r\n";
        pcntl_wait($status);
        // 等待子进程中断,防止子进程成为僵尸进程
    } else {
        if ($pids[$i] == 0) {
            // 子进程得到的$pid为0, 所以这里是子进程执行的逻辑
            $pid = posix_getpid();
            echo "process.{$pid} is writing now\r\n";
            msg_send($message_queue, 1, "this is process.{$pid}'s data\r\n");
            posix_kill($pid, SIGTERM);
        }
    }
}
do {
    msg_receive($message_queue, 0, $message_type, 1024, $message, true, MSG_IPC_NOWAIT);
    echo "message = {$message} \n";
    $mq_st = msg_stat_queue($message_queue);
    if ($mq_st['msg_qnum'] == 0) {
        // 队列为空,则退出
        break;
    }
} while (true);
echo "end... \n";
开发者ID:zhangta,项目名称:hades,代码行数:31,代码来源:mqScene.php



注:本文中的msg_stat_queue函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
PHP msg_success函数代码示例发布时间:2022-05-15
下一篇:
PHP msg_send_simple_message函数代码示例发布时间:2022-05-15
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap