Zend_Service_WindowsAzure_Storage_Queue
Das Queue Service speichert Nachrichten die von jedem Client gelesen werden können welche
auf den Speicher Account Zugriff haben.
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 (FIFO) 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.
Der Queue Speicher wird von Windows Azure als REST API
angeboten welche von der Zend_Service_WindowsAzure_Storage_Queue
Klasse umhüllt wird um ein natives PHP Interface zum Speicher Account zu
bieten.
API Beispiele
Dieses Thema listet einige Beispiele der Verwendung der
Zend_Service_WindowsAzure_Storage_Queue Klasse auf. Andere
Features sind im Download Paket vorhanden, sowie eine detailierte API
Dokumentation dieser Features.
Erstellung einer Queue
Bei Verwendung des folgenden Codes kann eine Queue auf dem Development Speicher
erstellt werden.
Erstellung einer Queue
createQueue('testqueue');
echo 'Der Name der Queue ist: ' . $result->Name;
]]>
Löschen einer Queue
Bei Verwendung des folgenden Codes kann eine Queue vom Development Speicher entfernt
werden.
Löschen einer Queue
deleteQueue('testqueue');
]]>
Hinzufügen einer Nachricht zu einer Queue
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.
Hinzufügen einer Nachricht zu einer Queue
putMessage('testqueue', 'Das ist eine Testnachricht', 3600);
]]>
Lesen einer Nachricht von einer Queue
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.
Lesen einer Nachricht von einer Queue
getMessages('testqueue', 10);
foreach ($messages as $message) {
echo $message->MessageText . "\r\n";
}
]]>
Die Nachrichten welche mit getMessages() 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
deleteMessage() verwendet werden.
Eine Nachricht als bearbeitet markieren
getMessages('testqueue', 10);
foreach ($messages as $message) {
echo $message . "\r\n";
// Die Nachricht als bearbeitet markieren
$storageClient->deleteMessage('testqueue', $message);
}
]]>
Prüfen ob es Nachrichten in der Queue gibt
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.
Prüfen ob es Nachrichten in einer Queue gibt
peekMessages('testqueue', 10);
foreach ($messages as $message) {
echo $message->MessageText . "\r\n";
}
]]>
Es ist zu beachten das Nachrichten welche mit Hilfe von
peekMessages() gelesen werden in der Queue nicht
unsichtbar, und durch Verwendung der Methode
deleteMessage() auch nicht als bearbeitet markiert werden
können. Um das zu tun sollte stattdessen getMessages()
verwendet werden.