Giter Club home page Giter Club logo

rebus.azurestorage's Introduction

Rebus.AzureStorage

install from nuget

THIS REPO IS TO BE DEPRECATED!

Check out Rebus.AzureBlobs for blob-based implementations of databus storage and saga snapshots.

Check out Rebus.AzureQueues for a storage queues-based transport implementation.

Library for table-based subscription storage will follow.

THIS REPO IS TO BE DEPRECATED!

Provides Azure Storage-based implementations for Rebus of

  • data bus storage (in blobs)
  • transport (with queues)
  • saga auditing snapshots (blobs)
  • subscriptions (tables)


rebus.azurestorage's People

Contributors

mattwhetton avatar mookid8000 avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

rebus.azurestorage's Issues

Azure Storage saga support

Hello! I would like to see Azure Storage saga persistence support for Rebus. It seems the only support right now is for auditing, not for "real" Sagas? I have modified an implementation (https://github.com/rebus-org/Rebus/tree/d0f1ad04ce66612d93a5cb034b8923c15797c136/Rebus.AzureStorage/Sagas) to support this and also found it to work very well. I have added concurrency support, for example. I'd like to do share this implementation, but I see that this repos is to be deprecated... How come? As I understand it will be difficult to add Saga support in the Azure Blobs repo or in the Azure Queues repos as we need both table and blob support to cover the need.
//Peter

Warning: Method not found: 'Void Rebus.Transport.ITransactionContext.OnCommitt

Hallo There,

I am trying to implement Rebus that uses azure storage queues with no luck.
I have integrated it into my worker and it seems like the handler are not being executed on message received.

The warning im getting:
warn: Rebus.Workers.ThreadPoolBased.ThreadPoolWorker[0]
An error occurred when attempting to receive the next message: System.MissingMethodException: Method not found: 'Void Rebus.Transport.ITransactionContext.OnCompleted(System.Func`1<System.Threading.Tasks.Task>)'.
at Rebus.AzureStorage.Transport.AzureStorageQueuesTransport.SetUpCompletion(ITransactionContext context, CloudQueueMessage cloudQueueMessage, CloudQueue inputQueue)
at Rebus.AzureStorage.Transport.AzureStorageQueuesTransport.Receive(ITransactionContext context, CancellationToken cancellationToken)
at Rebus.Workers.ThreadPoolBased.ThreadPoolWorker.ReceiveTransportMessage(CancellationToken token, ITransactionContext context)

The configuration in my worker:
var storageAccount = CloudStorageAccount.Parse(azureStorageQueueConfiguration);

    services.AddRebus(configure => configure
        .Transport(t => t.UseAzureStorageQueues(storageAccount, "queue"))
        .Routing(c => c.TypeBased()
            .Map<Mycommand>("queue")
        ))
        .AddRebusHandler<MyHandler>();

I am using .net 6 with the following nuget packages:
"Rebus" Version="6.6.5"
"Rebus.AzureStorage"
"Rebus.ServiceProvider" Version="8.3.1"

Is there something wrong in my configuration or could be that there is something missing in Azure.StorageQueues?

Unhandled exception. System.TypeLoadException: Method 'get_NetworkTimeout'

Hi, I get the following error when running on .NET core 3.1

OS: Mac OSX Catalina

As for the initialization I am doing a simple one:

var activator = new BuiltinHandlerActivator();
            Configure.With(activator)
                .Logging(l => l.Serilog())
                .Transport(t => t.UseAzureStorageQueues(connectionString, "request-appointment-saga"))
                .Start();

Below, the exception I got:

Unhandled exception. System.TypeLoadException: Method 'get_NetworkTimeout' in type 'Microsoft.Azure.Storage.Queue.QueueRequestOptions' from assembly 'Microsoft.Azure.Storage.Queue, Version=11.1.1.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' does not have an implementation.
   at Microsoft.Azure.Storage.Queue.CloudQueueClient..ctor(StorageUri storageUri, StorageCredentials credentials, DelegatingHandler delegatingHandler)
   at Microsoft.Azure.Storage.Queue.QueueAccountExtensions.CreateCloudQueueClient(CloudStorageAccount account)
   at Rebus.Config.AzureStorageQueuesConfigurationExtensions.Register(StandardConfigurer`1 configurer, String inputQueueAddress, CloudStorageAccount cloudStorageAccount, AzureStorageQueuesTransportOptions optionsOrNull)
   at Rebus.Config.AzureStorageQueuesConfigurationExtensions.UseAzureStorageQueues(StandardConfigurer`1 configurer, String storageAccountConnectionString, String inputQueueAddress, AzureStorageQueuesTransportOptions options)
   at Appointment.Program.<>c__DisplayClass2_0.<ConfigureQueueListeners>b__1(StandardConfigurer`1 t) in /Users/josefa/projects/Ally/DHCloud/Appointment/Program.cs:line 74
   at Rebus.Config.RebusConfigurer.Transport(Action`1 configurer)

create stable release nuget

When creating a nuget that depends on rebus.azurestorage 3.0.0-b02 we get the message: "A stable release of a package should not have a prerelease dependency. Either modify the version spec of dependency "Rebus.AzureStorage [3.0.0-b02, )" or update the version field in the nuspec".

Of course we can work around this, but a stable release (3.0, or 4.0...) would be much appreciated. Is that possible, or what's the hold back?

When using DataBus there is an exception on Blob with status code 412

Hi,

Our situation is like this:

  • We are using Azure Service Bus
  • Sending file by DataBus using Azure Storeage Blob
  • There are multiple subscribers that read data attachment at the same time (or very close times)

From time to time we have an exception:
Microsoft.Azure.Storage.StorageException: The condition specified using HTTP conditional header(s) is not met.
at Microsoft.Azure.Storage.Core.Executor.Executor.ExecuteAsync[T](RESTCommand`1 cmd, IRetryPolicy policy, OperationContext operationContext, CancellationToken token)
at Microsoft.Azure.Storage.Blob.BlobReadStream.DispatchReadAsync(Byte[] buffer, Int32 offset, Int32 count, CancellationToken cancellationToken)
at Microsoft.Azure.Storage.Blob.BlobReadStream.Read(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.Stream.CopyTo(Stream destination, Int32 bufferSize)

Return status is 412 and message is landing in error queue.

What do you think about that?

Kind Regards,
Piotr Balas

Static OperationContext causes a memory leak

In commit 1862883, line 38 of Rebus.AzureStorage/AzureStorage/Transport/AzureStorageQueuesTransport.cs introduced a static OperationContext. When Rebus is used in a long running service (such as a ServiceFabric service) with a DI container using Rebus.AutoFac or Rebus.ServiceProvider, this results in an ever-growing OperationContext that grows to several GB over a week or two. In our case this caused the ServiceFabric cluster to become unresponsive and eventually die. We had to rollback to 4.1.0 to resolve the issue.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.