1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.service.windowsazure.storage.queue">
<title>Zend_Service_WindowsAzure_Storage_Queue</title>
<para>
Das Queue Service speichert Nachrichten die von jedem Client gelesen werden können welche
auf den Speicher Account Zugriff haben.
</para>
<para>
Eine Queue kann eine unbegrenzte Anzahl an Nachrichten enthalten, jede von Ihnen bis zu 8KB
groß. Nachrichten werden generell am Ende der Queue hinzugefügt und vom Anfang der Queue
empfangen, auch wenn das First In / First Out Verhalten (<acronym>FIFO</acronym>) nicht
garantiert ist. Wenn man Nachrichten speichern muss die größer als 8KB sind, können die
Daten der Nachricht als Queue gespeichert werden oder in einer Tabelle und anschließend eine
Referenz zu den Daten als Nachricht in der Queue.
</para>
<para>
Der Queue Speicher wird von Windows Azure als <acronym>REST</acronym> <acronym>API</acronym>
angeboten welche von der <classname>Zend_Service_WindowsAzure_Storage_Queue</classname>
Klasse umhüllt wird um ein natives <acronym>PHP</acronym> Interface zum Speicher Account zu
bieten.
</para>
<sect2 id="zend.service.windowsazure.storage.queue.api">
<title>API Beispiele</title>
<para>
Dieses Thema listet einige Beispiele der Verwendung der
<classname>Zend_Service_WindowsAzure_Storage_Queue</classname> Klasse auf. Andere
Features sind im Download Paket vorhanden, sowie eine detailierte <acronym>API</acronym>
Dokumentation dieser Features.
</para>
<sect3 id="zend.service.windowsazure.storage.queue.api.create-queue">
<title>Erstellung einer Queue</title>
<para>
Bei Verwendung des folgenden Codes kann eine Queue auf dem Development Speicher
erstellt werden.
</para>
<example id="zend.service.windowsazure.storage.queue.api.create-queue.example">
<title>Erstellung einer Queue</title>
<programlisting language="php"><![CDATA[
$storageClient = new Zend_Service_WindowsAzure_Storage_Queue();
$result = $storageClient->createQueue('testqueue');
echo 'Der Name der Queue ist: ' . $result->Name;
]]></programlisting>
</example>
</sect3>
<sect3 id="zend.service.windowsazure.storage.queue.api.delete-queue">
<title>Löschen einer Queue</title>
<para>
Bei Verwendung des folgenden Codes kann eine Queue vom Development Speicher entfernt
werden.
</para>
<example id="zend.service.windowsazure.storage.queue.api.delete-queue.example">
<title>Löschen einer Queue</title>
<programlisting language="php"><![CDATA[
$storageClient = new Zend_Service_WindowsAzure_Storage_Queue();
$storageClient->deleteQueue('testqueue');
]]></programlisting>
</example>
</sect3>
<sect3 id="zend.service.windowsazure.storage.queue.api.storing-queue">
<title>Hinzufügen einer Nachricht zu einer Queue</title>
<para>
Bei Verwendung des folgenden Codes kann eine Nachricht zu einer Queue im
Development Speicher hinzugefügt werden. Es ist zu beachten das die Queue hierfür
bereits erstellt worden sein muss.
</para>
<example id="zend.service.windowsazure.storage.queue.api.storing-queue.example">
<title>Hinzufügen einer Nachricht zu einer Queue</title>
<programlisting language="php"><![CDATA[
$storageClient = new Zend_Service_WindowsAzure_Storage_Queue();
// 3600 = Lebenszeit der Nachricht,
// wenn nicht angegeben ist der Standardwert 7 Tage
$storageClient->putMessage('testqueue', 'Das ist eine Testnachricht', 3600);
]]></programlisting>
</example>
</sect3>
<sect3 id="zend.service.windowsazure.storage.queue.api.read-queue">
<title>Lesen einer Nachricht von einer Queue</title>
<para>
Bei Verwendung des folgenden Codes kann eine Nachricht von einer Queue im
Development Speicher gelesen werden. Es ist zu beachten das die Queue und die
Nachricht hierfür bereits erstellt worden sein muss.
</para>
<example id="zend.service.windowsazure.storage.queue.api.read-queue.example">
<title>Lesen einer Nachricht von einer Queue</title>
<programlisting language="php"><![CDATA[
$storageClient = new Zend_Service_WindowsAzure_Storage_Queue();
// 10 Nachrichten auf einmal empfangen
$messages = $storageClient->getMessages('testqueue', 10);
foreach ($messages as $message) {
echo $message->MessageText . "\r\n";
}
]]></programlisting>
</example>
<para>
Die Nachrichten welche mit <methodname>getMessages()</methodname> gelesen werden,
werden in der Queue für 30 Sekunden unsichtbar, und danach werden die Nachrichten
in der Queue wieder erscheinen. Um eine Nachricht als bearbeitet zu markieren und
Sie von der Queue zu entfernen, kann die Methode
<methodname>deleteMessage()</methodname> verwendet werden.
</para>
<example id="zend.service.windowsazure.storage.queue.api.read-queue.processexample">
<title>Eine Nachricht als bearbeitet markieren</title>
<programlisting language="php"><![CDATA[
$storageClient = new Zend_Service_WindowsAzure_Storage_Queue();
// 10 Nachrichten auf einmal empfangen
$messages = $storageClient->getMessages('testqueue', 10);
foreach ($messages as $message) {
echo $message . "\r\n";
// Die Nachricht als bearbeitet markieren
$storageClient->deleteMessage('testqueue', $message);
}
]]></programlisting>
</example>
</sect3>
<sect3 id="zend.service.windowsazure.storage.queue.api.peek-queue">
<title>Prüfen ob es Nachrichten in der Queue gibt</title>
<para>
Bei Verwendung des folgenden Codes kann eine Queue auf neue Nachrichten geprüft
werden. Es ist zu beachten das die Queue und die Nachricht hierfür bereits erstellt
worden sein müssen.
</para>
<example id="zend.service.windowsazure.storage.queue.api.peek-queue.example">
<title>Prüfen ob es Nachrichten in einer Queue gibt</title>
<programlisting language="php"><![CDATA[
$storageClient = new Zend_Service_WindowsAzure_Storage_Queue();
// 10 Nachrichten auf einmal empfangen
$messages = $storageClient->peekMessages('testqueue', 10);
foreach ($messages as $message) {
echo $message->MessageText . "\r\n";
}
]]></programlisting>
</example>
<para>
Es ist zu beachten das Nachrichten welche mit Hilfe von
<methodname>peekMessages()</methodname> gelesen werden in der Queue nicht
unsichtbar, und durch Verwendung der Methode
<methodname>deleteMessage()</methodname> auch nicht als bearbeitet markiert werden
können. Um das zu tun sollte stattdessen <methodname>getMessages()</methodname>
verwendet werden.
</para>
</sect3>
</sect2>
</sect1>
|