16.11. Implementacja rozproszonej kolejki

Podziękowania dla Jamesa Edwarda Graya II

Problem

Chcemy wykorzystać centralny serwer do kolejkowania żądań od zdalnych klientów i obsługiwania ich pojedynczo.

Rozwiązanie

Poniżej zamieszczono metodę, która umożliwia współdzielenie obiektu Queue pomiędzy klientami. Klienty umieszczają obiekty zadań w kolejce, a serwer obsługuje je poprzez przekazywanie do bloku kodowego.

#!/usr/bin/ruby # queue_server.rb require 'thread' # W celu obsługi klasy Queue zapewniającej bezpieczeństwo wątków require 'drb' $SAFE = 1 # Minimalny dopuszczalny poziom bezpieczeństwa podczas # współdzielenia kodu! def run_queue(url='druby://127.0.0.1:61676') queue = Queue.new # Kolejka zawierająca zadania do przetworzenia ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.