Git Product home page Git Product logo

abp.eventbus.cap's People

Contributors

gdlcf88 avatar geffzhang avatar hueifeng avatar jadynwong avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

abp.eventbus.cap's Issues

我在EventHandler里使用仓储,会出现报错System.ObjectDisposedException异常

版本3.3.0
我将CAP包都改到了3.1.2
继承IDistributedEventHandler<>的handler里注入仓储使用会出现异常,具体信息如下
System.ObjectDisposedException: Cannot access a disposed object.
Object name: 'MySqlConnection'.
at MySql.Data.MySqlClient.MySqlConnection.VerifyNotDisposed() in C:\projects\mysqlconnector\src\MySqlConnector\MySql.Data.MySqlClient\MySqlConnection.cs:line 706
at MySql.Data.MySqlClient.MySqlConnection.get_Session() in C:\projects\mysqlconnector\src\MySqlConnector\MySql.Data.MySqlClient\MySqlConnection.cs:line 481
at MySqlConnector.Core.ICancellableCommandExtensions.ResetCommandTimeout(ICancellableCommand command) in C:\projects\mysqlconnector\src\MySqlConnector\Core\ICancellableCommand.cs:line 41
at MySql.Data.MySqlClient.MySqlCommand.ExecuteDbDataReaderAsync(CommandBehavior behavior, CancellationToken cancellationToken) in C:\projects\mysqlconnector\src\MySqlConnector\MySql.Data.MySqlClient\MySqlCommand.cs:line 261
at System.Data.Common.DbCommand.ExecuteReaderAsync(CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Storage.RelationalCommand.ExecuteReaderAsync(RelationalCommandParameterObject parameterObject, CancellationToken cancellationToken)
at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable1.AsyncEnumerator.InitializeReaderAsync(DbContext _, Boolean result, CancellationToken cancellationToken) at Pomelo.EntityFrameworkCore.MySql.Storage.Internal.MySqlExecutionStrategy.ExecuteAsync[TState,TResult](TState state, Func4 operation, Func4 verifySucceeded, CancellationToken cancellationToken) at Microsoft.EntityFrameworkCore.Query.Internal.QueryingEnumerable1.AsyncEnumerator.MoveNextAsync()

Cannot InitializeAsync with EasyAbp.Abp.EventBus.CAP.PostgreSql

Hi,

I want to add EventBus.Cap to my abp project using EasyAbp.Abp.EventBus.CAP.PostgreSql but I have a problem that cannot Initialize CreateDbTablesScript, so whenever I publish the message, always relation "cap.published" does not exist'

I've added project like this

image

image

How can I solve this problem ?

Thanks

Retries count error

image
`
[AllowAnonymous]

public async Task TestDistributeEventError()
{
await _eventBus.PublishAsync(new Test1Eto());
}

public class TestEventHandler : IDistributedEventHandler,ITransientDependency
{
public virtual async Task HandleEventAsync(Test1Eto eventData)
{
throw new UserFriendlyException("测试分布式错误");
}

}

`
新发布2次事件,第一次重试立即被设置为50,第二次为3,以此循环,其中次数为3的会继续重试
且手动触发重新消费不会增加重试次数

Cap整合到AbpConsole中,如何后台启动

Cap的后台服务,我看了下DotNetCore.CAP.Internal.Bootstrapper.Default的代码,似乎是实现了BackgroundService
但是在Abp的控制台模式中,无法启动这个Cap,因为不适IHost入口,我想知道这个在控制台中应该怎么加载?
如果想要使用Abp的工作模式,需要实现的是Volo.Abp.BackgroundWorkers.BackgroundWorkerBase
我想办法去实现了,从Cap中抄了一部分加载的代码过来,但不知道有没有什么后遗症,想知道这边有没有确切的、更好的解决办法?

打搅了,官方其实有示例了,是我没看清楚,抱歉。
直接在Application中启动服务就可以了
public override void OnApplicationInitialization(ApplicationInitializationContext context)
{
context.ServiceProvider.GetService<IBootstrapper>().BootstrapAsync(default);
}

CAP应该作为一个独立的EventBus而不是集成到ABP当前的EventBus下

CAP应该作为一个独立的总线,与ABP自带的LocalEventBus, DistributedEventBus 作为并列的第三个总线来引入。
1.CAP提供的API与ABP的相差太大,即使集成到了一起,许多功能也无法全部满足。
2.使用CAP总线更多的是为了解决分布式的事物,如果仅仅是为了跟ABP现有的总线集成到一起, 许多CAP的独有的特性就没办法实现,如 多个分组订阅,动态Topic订阅等等,那么就失去了使用CAP的初衷
希望通过ABP的简单包裹,让CAP初始化更简单一些,还有CAP初始化时使用的EFContext与ABP的UnitOfWork模式可能会有一些冲突,我觉得在这些方面做一些适配与改进会更好一点。
感谢作者!

samples启动后直接报错

None of the constructors found with 'Autofac.Core.Activators.Reflection.DefaultConstructorFinder' on type 'DotNetCore.CAP.Internal.ConsumerRegister' can be invoked with the available services and parameters:
Cannot resolve parameter 'DotNetCore.CAP.Transport.IConsumerClientFactory consumerClientFactory' of constructor 'Void .ctor(Microsoft.Extensions.Logging.ILogger1[DotNetCore.CAP.Internal.ConsumerRegister], Microsoft.Extensions.Options.IOptions1[DotNetCore.CAP.CapOptions], DotNetCore.CAP.Internal.MethodMatcherCache, DotNetCore.CAP.Transport.IConsumerClientFactory, DotNetCore.CAP.Transport.IDispatcher, DotNetCore.CAP.Serialization.ISerializer, DotNetCore.CAP.Persistence.IDataStorage)'.

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.