nf.Tarantool.Queue
1.0.12
dotnet add package nf.Tarantool.Queue --version 1.0.12
NuGet\Install-Package nf.Tarantool.Queue -Version 1.0.12
<PackageReference Include="nf.Tarantool.Queue" Version="1.0.12" />
<PackageVersion Include="nf.Tarantool.Queue" Version="1.0.12" />
<PackageReference Include="nf.Tarantool.Queue" />
paket add nf.Tarantool.Queue --version 1.0.12
#r "nuget: nf.Tarantool.Queue, 1.0.12"
#:package nf.Tarantool.Queue@1.0.12
#addin nuget:?package=nf.Tarantool.Queue&version=1.0.12
#tool nuget:?package=nf.Tarantool.Queue&version=1.0.12
Welcome to the .NET nanoFramework nanoFramework.Tarantool.Queue repository
This repository contains the client library for working with Tarantool.Queue a full-fledged message broker for .NET nanoFramework.
Build status
Component | Build Status | NuGet Package |
---|---|---|
nanoFramework.Tarantool.Queue |
What can Tarantool.Queue for a microcontroller be useful for?
Using a message queue, you can:
- Organize a distributed system of microcontrollers that share a common data bus.
- Organize an event-based system for exchanging information from various sensors and microcontrollers.
- Organize an archive of various system data and readings.
- Use different types of message queues to customize the necessary information processing logic.
Limitations
Due to the limited memory size in the microcontroller, the message in the queue cannot be too large. To create and delete queues, you need to connect to Tarantool.Queue with the appropriate permissions.
Usage
The library supports all Tarantool.Queue types and all Queue module methods.
Samples:
- Taking a task from the queue ("consuming")
QueueClientOptions clientOptions = new QueueClientOptions($"{TarantoolHostIp}:3301"); using (IQueue queue = TarantoolQueueContext.Instance.GetQueue(clientOptions)) { ITube tube = queue["fifo_tube"]; TubeTask? tubeTask = null; Type messageInstaceType = typeof(SamleMessage); while ((tubeTask = tybe.Take(messageInstaceType)) != null) { try { //// Task processing.... //// ......... //// //// Acknowledging the completion processing of a task tube.Ack(messageInstaceType, tubeTask.TaskId); } catch(Exception ex) { //// Burying a task. If necessary, bury the erroneous task. tube.Bury(messageInstaceType, tubeTask.TaskId); //// or //// Delete task. //// tube.Delete(messageInstaceType, tubeTask.TaskId); Console.WriteLine(ex); } finaly { tubeTask = null; } } }
- Putting a task in a queue
QueueClientOptions clientOptions = new QueueClientOptions($"{TarantoolHostIp}:3301"); using (IQueue queue = TarantoolQueueContext.Instance.GetQueue(clientOptions)) { ITube tube = queue["fifo_tube"]; var sampleMessage = new SamleMessage(); try { tube.Put(sampleMessage); } catch(Exception ex) { Console.WriteLine(ex); } }
Acknowledgements
The initial version of the nanoFramework.Tarantool.Queue library was coded by Spirin Dmitriy, who has kindly handed over the library to the .NET nanoFramework project.
Feedback and documentation
For documentation, providing feedback, issues, and finding out how to contribute, please refer to the Home repo.
Join our Discord community here.
Credits
The list of contributors to this project can be found at CONTRIBUTORS.
License
The nanoFramework WebServer library is licensed under the MIT license.
Code of Conduct
This project has adopted the code of conduct defined by the Contributor Covenant to clarify expected behaviour in our community. For more information see the .NET Foundation Code of Conduct.
.NET Foundation
This project is supported by the .NET Foundation.
Product | Versions Compatible and additional computed target framework versions. |
---|---|
.NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 is compatible. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
.NET Core | netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
.NET Standard | netstandard2.1 is compatible. |
.NETnanoFramework | netnano1.0 is compatible. |
MonoAndroid | monoandroid was computed. |
MonoMac | monomac was computed. |
MonoTouch | monotouch was computed. |
Tizen | tizen60 was computed. |
Xamarin.iOS | xamarinios was computed. |
Xamarin.Mac | xamarinmac was computed. |
Xamarin.TVOS | xamarintvos was computed. |
Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETnanoFramework 1.0
- nanoFramework.CoreLibrary (>= 1.17.11)
- nanoFramework.MessagePack (>= 1.0.29)
- nanoFramework.Runtime.Events (>= 1.11.32)
- nanoFramework.System.Collections (>= 1.5.67)
- nanoFramework.System.IO.Streams (>= 1.1.96)
- nanoFramework.System.Net (>= 1.11.43)
- nanoFramework.System.Text (>= 1.3.42)
- nanoFramework.System.Threading (>= 1.1.52)
- nf.Tarantool (>= 1.0.43)
-
.NETStandard 2.1
- nf.MessagePack.Net (>= 1.1.14)
- nf.Tarantool (>= 1.0.43)
-
net8.0
- nf.MessagePack.Net (>= 1.1.14)
- nf.Tarantool (>= 1.0.43)
-
net9.0
- nf.MessagePack.Net (>= 1.1.14)
- nf.Tarantool (>= 1.0.43)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.