Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
C
CAP
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
tsai
CAP
Commits
05125fc6
Commit
05125fc6
authored
Jun 23, 2017
by
yangxiaodong
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Refactor.
parent
00f42253
Changes
13
Show whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
72 additions
and
42 deletions
+72
-42
IProcessor.Producer.cs
src/DotNetCore.CAP.Kafka/IProcessor.Producer.cs
+2
-2
RabbitMQProducerClient.cs
src/DotNetCore.CAP.RabbitMQ/RabbitMQProducerClient.cs
+2
-2
IConsumerServiceSelector.cs
src/DotNetCore.CAP/Abstractions/IConsumerServiceSelector.cs
+28
-0
CAP.Options.cs
src/DotNetCore.CAP/CAP.Options.cs
+1
-1
CAP.ServiceCollectionExtensions.cs
src/DotNetCore.CAP/CAP.ServiceCollectionExtensions.cs
+5
-4
CapStartContext.cs
src/DotNetCore.CAP/CapStartContext.cs
+3
-3
IBootstrapper.Default.cs
src/DotNetCore.CAP/IBootstrapper.Default.cs
+2
-2
IConsumerHandler.Default.cs
src/DotNetCore.CAP/IConsumerHandler.Default.cs
+4
-4
IConsumerExcutorSelector.cs
...DotNetCore.CAP/Infrastructure/IConsumerExcutorSelector.cs
+0
-12
IConsumerServiceSelector.Default.cs
...tNetCore.CAP/Internal/IConsumerServiceSelector.Default.cs
+18
-5
MethodMatcherCache.cs
src/DotNetCore.CAP/Internal/MethodMatcherCache.cs
+3
-3
CronJobRegistry.Default.cs
src/DotNetCore.CAP/Job/CronJobRegistry.Default.cs
+2
-2
IProcessingServer.Job.cs
src/DotNetCore.CAP/Job/IProcessingServer.Job.cs
+2
-2
No files found.
src/DotNetCore.CAP.Kafka/IProcessor.Producer.cs
View file @
05125fc6
...
@@ -16,7 +16,7 @@ namespace DotNetCore.CAP.Kafka
...
@@ -16,7 +16,7 @@ namespace DotNetCore.CAP.Kafka
{
{
public
class
KafkaJobProcessor
:
IJobProcessor
public
class
KafkaJobProcessor
:
IJobProcessor
{
{
private
readonly
C
onsistency
Options
_options
;
private
readonly
C
ap
Options
_options
;
private
readonly
CancellationTokenSource
_cts
;
private
readonly
CancellationTokenSource
_cts
;
private
readonly
IServiceProvider
_provider
;
private
readonly
IServiceProvider
_provider
;
...
@@ -26,7 +26,7 @@ namespace DotNetCore.CAP.Kafka
...
@@ -26,7 +26,7 @@ namespace DotNetCore.CAP.Kafka
private
TimeSpan
_pollingDelay
;
private
TimeSpan
_pollingDelay
;
public
KafkaJobProcessor
(
public
KafkaJobProcessor
(
IOptions
<
C
onsistency
Options
>
options
,
IOptions
<
C
ap
Options
>
options
,
ILogger
<
KafkaJobProcessor
>
logger
,
ILogger
<
KafkaJobProcessor
>
logger
,
IServiceProvider
provider
)
IServiceProvider
provider
)
{
{
...
...
src/DotNetCore.CAP.RabbitMQ/RabbitMQProducerClient.cs
View file @
05125fc6
...
@@ -9,10 +9,10 @@ namespace DotNetCore.CAP.RabbitMQ
...
@@ -9,10 +9,10 @@ namespace DotNetCore.CAP.RabbitMQ
{
{
public
class
RabbitMQProducerClient
:
ICapProducerService
public
class
RabbitMQProducerClient
:
ICapProducerService
{
{
private
readonly
C
onsistency
Options
_options
;
private
readonly
C
ap
Options
_options
;
private
readonly
ILogger
_logger
;
private
readonly
ILogger
_logger
;
public
RabbitMQProducerClient
(
IOptions
<
C
onsistency
Options
>
options
,
ILoggerFactory
loggerFactory
)
public
RabbitMQProducerClient
(
IOptions
<
C
ap
Options
>
options
,
ILoggerFactory
loggerFactory
)
{
{
_options
=
options
.
Value
;
_options
=
options
.
Value
;
_logger
=
loggerFactory
.
CreateLogger
(
nameof
(
RabbitMQProducerClient
));
_logger
=
loggerFactory
.
CreateLogger
(
nameof
(
RabbitMQProducerClient
));
...
...
src/DotNetCore.CAP/Abstractions/IConsumerServiceSelector.cs
0 → 100644
View file @
05125fc6
using
System.Collections.Generic
;
using
DotNetCore.CAP.Abstractions
;
namespace
DotNetCore.CAP.Abstractions
{
/// <summary>
/// Defines an interface for selecting an cosumer service method to invoke for the current message.
/// </summary>
public
interface
IConsumerServiceSelector
{
/// <summary>
/// Selects a set of <see cref="ConsumerExecutorDescriptor"/> candidates for the current message associated with
/// <paramref name="context"/>.
/// </summary>
/// <param name="context">The <see cref="CapStartContext"/> associated with the current message.</param>
/// <returns>A set of <see cref="ConsumerExecutorDescriptor"/> candidates or <c>null</c>.</returns>
IReadOnlyList
<
ConsumerExecutorDescriptor
>
SelectCandidates
(
CapStartContext
context
);
/// <summary>
/// Selects the best <see cref="ConsumerExecutorDescriptor"/> candidate from <paramref name="candidates"/> for the
/// current message associated with <paramref name="context"/>.
/// </summary>
/// <param name="key">topic or exchange router key.</param>
/// <param name="candidates">the set of <see cref="ConsumerExecutorDescriptor"/> candidates.</param>
/// <returns></returns>
ConsumerExecutorDescriptor
SelectBestCandidate
(
string
key
,
IReadOnlyList
<
ConsumerExecutorDescriptor
>
candidates
);
}
}
\ No newline at end of file
src/DotNetCore.CAP/
Infrastructure/Consistency
Options.cs
→
src/DotNetCore.CAP/
CAP.
Options.cs
View file @
05125fc6
...
@@ -5,7 +5,7 @@ namespace DotNetCore.CAP.Infrastructure
...
@@ -5,7 +5,7 @@ namespace DotNetCore.CAP.Infrastructure
/// <summary>
/// <summary>
/// Represents all the options you can use to configure the system.
/// Represents all the options you can use to configure the system.
/// </summary>
/// </summary>
public
class
C
onsistency
Options
public
class
C
ap
Options
{
{
public
string
BrokerUrlList
{
get
;
set
;
}
=
"localhost:9092"
;
public
string
BrokerUrlList
{
get
;
set
;
}
=
"localhost:9092"
;
...
...
src/DotNetCore.CAP/CAP.ServiceCollectionExtensions.cs
View file @
05125fc6
...
@@ -2,6 +2,7 @@
...
@@ -2,6 +2,7 @@
using
System.Collections.Generic
;
using
System.Collections.Generic
;
using
System.Reflection
;
using
System.Reflection
;
using
DotNetCore.CAP
;
using
DotNetCore.CAP
;
using
DotNetCore.CAP.Abstractions
;
using
DotNetCore.CAP.Abstractions.ModelBinding
;
using
DotNetCore.CAP.Abstractions.ModelBinding
;
using
DotNetCore.CAP.Infrastructure
;
using
DotNetCore.CAP.Infrastructure
;
using
DotNetCore.CAP.Internal
;
using
DotNetCore.CAP.Internal
;
...
@@ -22,7 +23,7 @@ namespace Microsoft.Extensions.DependencyInjection
...
@@ -22,7 +23,7 @@ namespace Microsoft.Extensions.DependencyInjection
/// <returns>An <see cref="CapBuilder"/> for application services.</returns>
/// <returns>An <see cref="CapBuilder"/> for application services.</returns>
public
static
CapBuilder
AddConsistency
(
this
IServiceCollection
services
)
public
static
CapBuilder
AddConsistency
(
this
IServiceCollection
services
)
{
{
services
.
AddConsistency
(
x
=>
new
C
onsistency
Options
());
services
.
AddConsistency
(
x
=>
new
C
ap
Options
());
return
new
CapBuilder
(
services
);
return
new
CapBuilder
(
services
);
}
}
...
@@ -31,18 +32,18 @@ namespace Microsoft.Extensions.DependencyInjection
...
@@ -31,18 +32,18 @@ namespace Microsoft.Extensions.DependencyInjection
/// Adds and configures the consistence services for the consitence.
/// Adds and configures the consistence services for the consitence.
/// </summary>
/// </summary>
/// <param name="services">The services available in the application.</param>
/// <param name="services">The services available in the application.</param>
/// <param name="setupAction">An action to configure the <see cref="C
onsistency
Options"/>.</param>
/// <param name="setupAction">An action to configure the <see cref="C
ap
Options"/>.</param>
/// <returns>An <see cref="CapBuilder"/> for application services.</returns>
/// <returns>An <see cref="CapBuilder"/> for application services.</returns>
public
static
CapBuilder
AddConsistency
(
public
static
CapBuilder
AddConsistency
(
this
IServiceCollection
services
,
this
IServiceCollection
services
,
Action
<
C
onsistency
Options
>
setupAction
)
Action
<
C
ap
Options
>
setupAction
)
{
{
services
.
TryAddSingleton
<
CapMarkerService
>();
services
.
TryAddSingleton
<
CapMarkerService
>();
services
.
Configure
(
setupAction
);
services
.
Configure
(
setupAction
);
AddConsumerServices
(
services
);
AddConsumerServices
(
services
);
services
.
TryAddSingleton
<
IConsumer
ExcutorSelector
,
ConsumerExcutor
Selector
>();
services
.
TryAddSingleton
<
IConsumer
ServiceSelector
,
DefaultConsumerService
Selector
>();
services
.
TryAddSingleton
<
IModelBinder
,
DefaultModelBinder
>();
services
.
TryAddSingleton
<
IModelBinder
,
DefaultModelBinder
>();
services
.
TryAddSingleton
<
IConsumerInvokerFactory
,
ConsumerInvokerFactory
>();
services
.
TryAddSingleton
<
IConsumerInvokerFactory
,
ConsumerInvokerFactory
>();
services
.
TryAddSingleton
<
MethodMatcherCache
>();
services
.
TryAddSingleton
<
MethodMatcherCache
>();
...
...
src/DotNetCore.CAP/
Topic
Context.cs
→
src/DotNetCore.CAP/
CapStart
Context.cs
View file @
05125fc6
...
@@ -3,13 +3,13 @@ using System.Threading;
...
@@ -3,13 +3,13 @@ using System.Threading;
namespace
DotNetCore.CAP
namespace
DotNetCore.CAP
{
{
public
class
Topic
Context
public
class
CapStart
Context
{
{
public
Topic
Context
()
public
CapStart
Context
()
{
{
}
}
public
Topic
Context
(
IServiceProvider
provider
,
CancellationToken
cancellationToken
)
public
CapStart
Context
(
IServiceProvider
provider
,
CancellationToken
cancellationToken
)
{
{
ServiceProvider
=
provider
;
ServiceProvider
=
provider
;
CancellationToken
=
cancellationToken
;
CancellationToken
=
cancellationToken
;
...
...
src/DotNetCore.CAP/IBootstrapper.Default.cs
View file @
05125fc6
...
@@ -17,7 +17,7 @@ namespace DotNetCore.CAP
...
@@ -17,7 +17,7 @@ namespace DotNetCore.CAP
private
Task
_bootstrappingTask
;
private
Task
_bootstrappingTask
;
public
DefaultBootstrapper
(
public
DefaultBootstrapper
(
IOptions
<
C
onsistency
Options
>
options
,
IOptions
<
C
ap
Options
>
options
,
ICapMessageStore
storage
,
ICapMessageStore
storage
,
IApplicationLifetime
appLifetime
,
IApplicationLifetime
appLifetime
,
IServiceProvider
provider
)
IServiceProvider
provider
)
...
@@ -41,7 +41,7 @@ namespace DotNetCore.CAP
...
@@ -41,7 +41,7 @@ namespace DotNetCore.CAP
});
});
}
}
protected
C
onsistency
Options
Options
{
get
;
}
protected
C
ap
Options
Options
{
get
;
}
protected
ICapMessageStore
Storage
{
get
;
}
protected
ICapMessageStore
Storage
{
get
;
}
...
...
src/DotNetCore.CAP/IConsumerHandler.Default.cs
View file @
05125fc6
...
@@ -20,13 +20,13 @@ namespace DotNetCore.CAP
...
@@ -20,13 +20,13 @@ namespace DotNetCore.CAP
private
readonly
ILogger
_logger
;
private
readonly
ILogger
_logger
;
private
readonly
MethodMatcherCache
_selector
;
private
readonly
MethodMatcherCache
_selector
;
private
readonly
C
onsistency
Options
_options
;
private
readonly
C
ap
Options
_options
;
private
readonly
ICapMessageStore
_messageStore
;
private
readonly
ICapMessageStore
_messageStore
;
private
readonly
CancellationTokenSource
_cts
;
private
readonly
CancellationTokenSource
_cts
;
public
event
EventHandler
<
ConsistencyMessage
>
MessageReceieved
;
public
event
EventHandler
<
ConsistencyMessage
>
MessageReceieved
;
private
Topic
Context
_context
;
private
CapStart
Context
_context
;
private
Task
_compositeTask
;
private
Task
_compositeTask
;
private
bool
_disposed
;
private
bool
_disposed
;
...
@@ -37,7 +37,7 @@ namespace DotNetCore.CAP
...
@@ -37,7 +37,7 @@ namespace DotNetCore.CAP
ILoggerFactory
loggerFactory
,
ILoggerFactory
loggerFactory
,
ICapMessageStore
messageStore
,
ICapMessageStore
messageStore
,
MethodMatcherCache
selector
,
MethodMatcherCache
selector
,
IOptions
<
C
onsistency
Options
>
options
)
{
IOptions
<
C
ap
Options
>
options
)
{
_selector
=
selector
;
_selector
=
selector
;
_logger
=
loggerFactory
.
CreateLogger
<
ConsumerHandler
>();
_logger
=
loggerFactory
.
CreateLogger
<
ConsumerHandler
>();
_loggerFactory
=
loggerFactory
;
_loggerFactory
=
loggerFactory
;
...
@@ -54,7 +54,7 @@ namespace DotNetCore.CAP
...
@@ -54,7 +54,7 @@ namespace DotNetCore.CAP
}
}
public
void
Start
()
{
public
void
Start
()
{
_context
=
new
Topic
Context
(
_serviceProvider
,
_cts
.
Token
);
_context
=
new
CapStart
Context
(
_serviceProvider
,
_cts
.
Token
);
var
matchs
=
_selector
.
GetCandidatesMethods
(
_context
);
var
matchs
=
_selector
.
GetCandidatesMethods
(
_context
);
...
...
src/DotNetCore.CAP/Infrastructure/IConsumerExcutorSelector.cs
deleted
100644 → 0
View file @
00f42253
using
System.Collections.Generic
;
using
DotNetCore.CAP.Abstractions
;
namespace
DotNetCore.CAP.Infrastructure
{
public
interface
IConsumerExcutorSelector
{
IReadOnlyList
<
ConsumerExecutorDescriptor
>
SelectCandidates
(
TopicContext
context
);
ConsumerExecutorDescriptor
SelectBestCandidate
(
string
key
,
IReadOnlyList
<
ConsumerExecutorDescriptor
>
executeDescriptor
);
}
}
\ No newline at end of file
src/DotNetCore.CAP/Internal/
ConsumerExcutorSelector
.cs
→
src/DotNetCore.CAP/Internal/
IConsumerServiceSelector.Default
.cs
View file @
05125fc6
...
@@ -3,26 +3,39 @@ using System.Collections.Generic;
...
@@ -3,26 +3,39 @@ using System.Collections.Generic;
using
System.Linq
;
using
System.Linq
;
using
System.Reflection
;
using
System.Reflection
;
using
DotNetCore.CAP.Abstractions
;
using
DotNetCore.CAP.Abstractions
;
using
DotNetCore.CAP.Infrastructure
;
using
Microsoft.Extensions.DependencyInjection
;
using
Microsoft.Extensions.DependencyInjection
;
namespace
DotNetCore.CAP.Internal
namespace
DotNetCore.CAP.Internal
{
{
public
class
ConsumerExcutorSelector
:
IConsumerExcutorSelector
/// <summary>
/// A default <see cref="IConsumerServiceSelector"/> implementation.
/// </summary>
public
class
DefaultConsumerServiceSelector
:
IConsumerServiceSelector
{
{
private
readonly
IServiceProvider
_serviceProvider
;
private
readonly
IServiceProvider
_serviceProvider
;
public
ConsumerExcutorSelector
(
IServiceProvider
serviceProvider
)
/// <summary>
/// Creates a new <see cref="DefaultConsumerServiceSelector"/>.
/// </summary>
/// <param name="serviceProvider"></param>
public
DefaultConsumerServiceSelector
(
IServiceProvider
serviceProvider
)
{
{
_serviceProvider
=
serviceProvider
;
_serviceProvider
=
serviceProvider
;
}
}
public
ConsumerExecutorDescriptor
SelectBestCandidate
(
string
key
,
IReadOnlyList
<
ConsumerExecutorDescriptor
>
executeDescriptor
)
/// <summary>
///
/// </summary>
/// <param name="key"></param>
/// <param name="executeDescriptor"></param>
/// <returns></returns>
public
ConsumerExecutorDescriptor
SelectBestCandidate
(
string
key
,
IReadOnlyList
<
ConsumerExecutorDescriptor
>
executeDescriptor
)
{
{
return
executeDescriptor
.
FirstOrDefault
(
x
=>
x
.
Attribute
.
Name
==
key
);
return
executeDescriptor
.
FirstOrDefault
(
x
=>
x
.
Attribute
.
Name
==
key
);
}
}
public
IReadOnlyList
<
ConsumerExecutorDescriptor
>
SelectCandidates
(
Topic
Context
context
)
public
IReadOnlyList
<
ConsumerExecutorDescriptor
>
SelectCandidates
(
CapStart
Context
context
)
{
{
var
consumerServices
=
context
.
ServiceProvider
.
GetServices
<
IConsumerService
>();
var
consumerServices
=
context
.
ServiceProvider
.
GetServices
<
IConsumerService
>();
...
...
src/DotNetCore.CAP/Internal/MethodMatcherCache.cs
View file @
05125fc6
...
@@ -7,14 +7,14 @@ namespace DotNetCore.CAP.Internal
...
@@ -7,14 +7,14 @@ namespace DotNetCore.CAP.Internal
{
{
public
class
MethodMatcherCache
public
class
MethodMatcherCache
{
{
private
readonly
IConsumer
Excutor
Selector
_selector
;
private
readonly
IConsumer
Service
Selector
_selector
;
public
MethodMatcherCache
(
IConsumer
Excutor
Selector
selector
)
public
MethodMatcherCache
(
IConsumer
Service
Selector
selector
)
{
{
_selector
=
selector
;
_selector
=
selector
;
}
}
public
ConcurrentDictionary
<
string
,
ConsumerExecutorDescriptor
>
GetCandidatesMethods
(
Topic
Context
routeContext
)
public
ConcurrentDictionary
<
string
,
ConsumerExecutorDescriptor
>
GetCandidatesMethods
(
CapStart
Context
routeContext
)
{
{
if
(
Entries
.
Count
==
0
)
if
(
Entries
.
Count
==
0
)
{
{
...
...
src/DotNetCore.CAP/Job/CronJobRegistry.Default.cs
View file @
05125fc6
...
@@ -5,9 +5,9 @@ namespace DotNetCore.CAP.Job
...
@@ -5,9 +5,9 @@ namespace DotNetCore.CAP.Job
{
{
public
class
DefaultCronJobRegistry
:
CronJobRegistry
public
class
DefaultCronJobRegistry
:
CronJobRegistry
{
{
private
readonly
C
onsistency
Options
_options
;
private
readonly
C
ap
Options
_options
;
public
DefaultCronJobRegistry
(
IOptions
<
C
onsistency
Options
>
options
)
public
DefaultCronJobRegistry
(
IOptions
<
C
ap
Options
>
options
)
{
{
_options
=
options
.
Value
;
_options
=
options
.
Value
;
...
...
src/DotNetCore.CAP/Job/IProcessingServer.Job.cs
View file @
05125fc6
...
@@ -18,7 +18,7 @@ namespace DotNetCore.CAP
...
@@ -18,7 +18,7 @@ namespace DotNetCore.CAP
private
IServiceProvider
_provider
;
private
IServiceProvider
_provider
;
private
IJobProcessor
[]
_processors
;
private
IJobProcessor
[]
_processors
;
private
CancellationTokenSource
_cts
;
private
CancellationTokenSource
_cts
;
private
C
onsistency
Options
_options
;
private
C
ap
Options
_options
;
private
ProcessingContext
_context
;
private
ProcessingContext
_context
;
private
DefaultCronJobRegistry
_defaultJobRegistry
;
private
DefaultCronJobRegistry
_defaultJobRegistry
;
private
Task
_compositeTask
;
private
Task
_compositeTask
;
...
@@ -29,7 +29,7 @@ namespace DotNetCore.CAP
...
@@ -29,7 +29,7 @@ namespace DotNetCore.CAP
ILoggerFactory
loggerFactory
,
ILoggerFactory
loggerFactory
,
IServiceProvider
provider
,
IServiceProvider
provider
,
DefaultCronJobRegistry
defaultJobRegistry
,
DefaultCronJobRegistry
defaultJobRegistry
,
IOptions
<
C
onsistency
Options
>
options
)
IOptions
<
C
ap
Options
>
options
)
{
{
_logger
=
logger
;
_logger
=
logger
;
_loggerFactory
=
loggerFactory
;
_loggerFactory
=
loggerFactory
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment