1
1
using System ;
2
2
using System . Buffers ;
3
- using System . Collections . Generic ;
4
3
using System . Runtime . InteropServices ;
5
4
using System . Threading . Tasks ;
6
5
7
- using RabbitMQ . Client . Events ;
8
-
9
6
namespace RabbitMQ . Client . Impl
10
7
{
11
- sealed class BasicDeliver : Work
8
+ internal sealed class BasicDeliver : Work
12
9
{
13
- readonly string _consumerTag ;
14
- readonly ulong _deliveryTag ;
15
- readonly bool _redelivered ;
16
- readonly string _exchange ;
17
- readonly string _routingKey ;
18
- readonly IBasicProperties _basicProperties ;
19
- readonly ReadOnlyMemory < byte > _body ;
10
+ private readonly string _consumerTag ;
11
+ private readonly ulong _deliveryTag ;
12
+ private readonly bool _redelivered ;
13
+ private readonly string _exchange ;
14
+ private readonly string _routingKey ;
15
+ private readonly IBasicProperties _basicProperties ;
16
+ private readonly ReadOnlyMemory < byte > _body ;
17
+
18
+ public override string Context => "HandleBasicDeliver" ;
20
19
21
20
public BasicDeliver ( IBasicConsumer consumer ,
22
21
string consumerTag ,
@@ -36,38 +35,22 @@ public BasicDeliver(IBasicConsumer consumer,
36
35
_body = body ;
37
36
}
38
37
39
- protected override async Task Execute ( IModel model , IAsyncBasicConsumer consumer )
38
+ protected override Task Execute ( IAsyncBasicConsumer consumer )
40
39
{
41
- try
42
- {
43
- await consumer . HandleBasicDeliver ( _consumerTag ,
44
- _deliveryTag ,
45
- _redelivered ,
46
- _exchange ,
47
- _routingKey ,
48
- _basicProperties ,
49
- _body ) . ConfigureAwait ( false ) ;
50
- }
51
- catch ( Exception e )
52
- {
53
- if ( ! ( model is ModelBase modelBase ) )
54
- {
55
- return ;
56
- }
40
+ return consumer . HandleBasicDeliver ( _consumerTag ,
41
+ _deliveryTag ,
42
+ _redelivered ,
43
+ _exchange ,
44
+ _routingKey ,
45
+ _basicProperties ,
46
+ _body ) ;
47
+ }
57
48
58
- var details = new Dictionary < string , object > ( )
59
- {
60
- { "consumer" , consumer } ,
61
- { "context" , "HandleBasicDeliver" }
62
- } ;
63
- modelBase . OnCallbackException ( CallbackExceptionEventArgs . Build ( e , details ) ) ;
64
- }
65
- finally
49
+ public override void PostExecute ( )
50
+ {
51
+ if ( MemoryMarshal . TryGetArray ( _body , out ArraySegment < byte > segment ) )
66
52
{
67
- if ( MemoryMarshal . TryGetArray ( _body , out ArraySegment < byte > segment ) )
68
- {
69
- ArrayPool < byte > . Shared . Return ( segment . Array ) ;
70
- }
53
+ ArrayPool < byte > . Shared . Return ( segment . Array ) ;
71
54
}
72
55
}
73
56
}
0 commit comments