Zend_Queue-Example.xml 1.9 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <!-- Reviewed: no -->
  3. <sect1 id="zend.queue.example">
  4. <title>Примеры использования</title>
  5. <para>
  6. The below example of <classname>Zend_Queue</classname> shows a variety of
  7. features, including queue creation, queue retrieval, message retrieval,
  8. message deletion, and sending messages.
  9. Приведённый ниже пример показывает варианты использования
  10. <classname>Zend_Queue</classname>: создание очереди сообщений,
  11. получение, отправку и удаление сообщений.
  12. </para>
  13. <programlisting language="php"><![CDATA[
  14. // Конфигурационные параметры
  15. // @see Zend_Queue_Adapater::__construct()
  16. $options = array(
  17. 'name' => 'queue1',
  18. );
  19. // Создание очереди на основе массива
  20. $queue = new Zend_Queue('Array', $options);
  21. // Получение списка очередей
  22. foreach ($queue->getQueues() as $name) {
  23. echo $name, "\n";
  24. }
  25. // Создание новой очереди
  26. $queue2 = $queue->createQueue('queue2');
  27. // Подсчёт количества сообщений в очереди (реализует интерфейс Countable из SPL)
  28. echo count($queue);
  29. // Получение 5 сообщений из очереди
  30. $messages = $queue->receive(5);
  31. foreach ($messages as $i => $message) {
  32. echo $message->body, "\n";
  33. // Сообщение обработано, его можно удалить
  34. $queue->deleteMessage($message);
  35. }
  36. // Отправка сообщения в текущую очередь
  37. $queue->send('My Test Message');
  38. // Удаление созданной очереди и всех сообщений в ней
  39. $queue->deleteQueue('queue2');
  40. ]]></programlisting>
  41. </sect1>