System.Reactive.IronMQ.Client.ListQueues C# (CSharp) Метод

ListQueues() публичный Метод

Get a list of all queues in a project. By default, 30 queues are fetched at a time. Up to 100 queues may be listed on a single page.
public ListQueues ( int startPage, int pageSize = 30 ) : IObservable
startPage int
pageSize int
Результат IObservable
        public IObservable<Queue> ListQueues(int startPage = 0, int pageSize = 30)
        {
            return Observable.Create<Queue>(async (observer, cancel) =>
            {
                var page = startPage;
            Next:
                var response = await _client.GetStringAsync(string.Format("queues?page={0}", page++));
                var array = JsonArray.Parse(response) as JsonArray;
                foreach (var info in array) observer.OnNext(new Queue(this._client, new _QueueInfo(info).Name));
                if (array.Count == pageSize && !cancel.IsCancellationRequested) goto Next;
                observer.OnCompleted();
            });
        }

Usage Example

Пример #1
0
        static async Task MainAsync()
        {
            UnProtectConfiguration();
            client = new Client(ConfigurationManager.AppSettings["applicationID"], ConfigurationManager.AppSettings["oauthToken"]);

            var queue = await client.CreateOrGetQueueAsync("foo");

            //var count = await queue.GetCountAsync();
            //Console.WriteLine(count);
            //await queue.DeleteAsync();
            //await queue.DeleteAsync();
            //await queue.GetCountAsync();
            //Console.WriteLine(count);

            client.ListQueues().Subscribe(_queue =>
            {
                Console.WriteLine("Found {0}", _queue.Name);
            });

            var source = new CancellationTokenSource();
            var add = AddMessages(source.Token);
            var delete = ProcessMessages(source.Token);
            Console.WriteLine("Hit enter to cancel ...");
            Console.ReadLine();
            source.Cancel();
            Task.WaitAll(add, delete);

            Console.WriteLine("Bye from Main!");
            Console.ReadLine();
        }