File tree Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Expand file tree Collapse file tree 1 file changed +12
-3
lines changed Original file line number Diff line number Diff line change @@ -32,6 +32,7 @@ class Sender extends CoreClient {
32
32
super ( ) ;
33
33
this . confirmed = 0 ;
34
34
this . sent = 0 ;
35
+ this . released = 0 ;
35
36
this . ts ;
36
37
this . timer_task ;
37
38
this . _setUpHandlers ( ) ;
@@ -113,7 +114,12 @@ class Sender extends CoreClient {
113
114
this . _nextRequest ( context , this ) ;
114
115
} else {
115
116
let message = undefined ;
116
- while ( ( this . options . anonymous || ( context . sender && context . sender . sendable ( ) ) ) && this . sent < this . options . count ) {
117
+ let totalSent = this . sent ;
118
+ // If using best-effort, then simply ignore released messages
119
+ if ( ! this . options . linkAtMostOnce ) {
120
+ totalSent -= this . released ;
121
+ }
122
+ while ( ( this . options . anonymous || ( context . sender && context . sender . sendable ( ) ) ) && totalSent < this . options . count ) {
117
123
this . sent ++ ;
118
124
message = this . _createMessage ( this . sent - 1 ) ;
119
125
@@ -213,9 +219,12 @@ class Sender extends CoreClient {
213
219
214
220
//release message
215
221
this . container . on ( 'released' , function ( context ) {
222
+ self . released ++ ;
216
223
self . onReleased ( context ) ;
217
- if ( self . options . releaseAction === 'retry' ) {
218
- context . sender . send ( context . delivery ) ;
224
+ if ( self . options . releaseAction === 'retry' && ! self . options . linkAtMostOnce ) {
225
+ if ( context . sender . sendable ( ) ) {
226
+ context . sender . send ( context . delivery ) ;
227
+ }
219
228
}
220
229
} ) ;
221
230
You can’t perform that action at this time.
0 commit comments