msg_queue_exists

(PHP 5 >= 5.3.0, PHP 7, PHP 8)

msg_queue_existsVerificar si una cola de mensajes existe

Descripción

msg_queue_exists(int $key): bool

Verifica si la clave dada por el parámetro key de la cola de mensajes existe.

Parámetros

key

La clave de la cola.

Valores devueltos

Devuelve true en caso de éxito o false en caso de error.

Ver también

add a note add a note

User Contributed Notes 4 notes

up
1
michael dot hajuu at gmail dot com
13 years ago
A simple script for checking what message queues are in use on a [presumably new] server environment.

Run with php-cli

<?php
$k
= 0;
while (
true) {
  echo
$key,"...\r";
  if (
msg_queue_exists($key))
   echo
"\r",$key,'::Exists',"\n";
  
$key++;
}
?>
up
1
klatovsky at 2u2 dot cz
5 years ago
This function is creating new queue (and returning true) if you set NULL into $key variable.

<?php

$isQueueCreated
= msg_queue_exists(NULL);
print
$isQueueCreated ? "WTF??!" : "ok, everything is fine..";

?>

WTF??!

# ipcs -q
0x00000000 173047808  root       0        0            0
up
0
jaredm
14 years ago
A workaround for those not yet running 5.3 on *nix:

<?php
function queue_exists($key) {
    if(
function_exists("msg_queue_exists")) {
        return
msg_queue_exists($key);
    } else {
       
$aQueues = array();
       
exec("ipcs -q | grep \"^[0-9]\" | cut -d \" \" -f 1", $aQueues);
        if(
in_array($key,$aQueues)) return true;
        else return
false;
    }
}
?>

Maybe a bit slow and kludgey, but it works.
up
-2
tkuschel at loytec dot com
11 years ago
Following code will do the job:
<?php
$key
= 0;
while (
true) {
  echo
$key,"...\r";
  if (
msg_queue_exists($key))
   echo
"\r",$key,'::Exists',"\n";
  
$key++;
}
?>
To Top