Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
J
Java 9 Flow-Api
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
Divisha Agarwal
Java 9 Flow-Api
Commits
9bf16a22
Commit
9bf16a22
authored
Apr 30, 2020
by
Divisha Agarwal
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
added Backpressure
parent
a03eb81e
Changes
2
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
61 additions
and
0 deletions
+61
-0
BackpressureSubscriber.java
...om/nisum/backpressureStrategy/BackpressureSubscriber.java
+36
-0
BackpressureUsingBufferStrategy.java
...backpressureStrategy/BackpressureUsingBufferStrategy.java
+25
-0
No files found.
src/main/java/com/nisum/backpressureStrategy/BackpressureSubscriber.java
0 → 100644
View file @
9bf16a22
package
com
.
nisum
.
backpressureStrategy
;
import
java.util.concurrent.Flow
;
public
class
BackpressureSubscriber
<
Integer
>
implements
Flow
.
Subscriber
<
Integer
>{
private
Flow
.
Subscription
subscription
;
@Override
public
void
onSubscribe
(
Flow
.
Subscription
subscription
)
{
System
.
out
.
println
(
"Subscribed"
);
this
.
subscription
=
subscription
;
subscription
.
request
(
1
);
}
@Override
public
void
onNext
(
Integer
item
)
{
System
.
out
.
println
(
Thread
.
currentThread
().
getName
()
+
" | Received = "
+
item
);
try
{
Thread
.
sleep
(
1000
);
}
catch
(
InterruptedException
e
)
{
e
.
printStackTrace
();
}
subscription
.
request
(
1
);
}
@Override
public
void
onError
(
Throwable
throwable
)
{
System
.
out
.
println
(
Thread
.
currentThread
().
getName
()
+
" | ERROR = "
+
throwable
.
getClass
().
getSimpleName
()
+
" | "
+
throwable
.
getMessage
());
}
@Override
public
void
onComplete
()
{
System
.
out
.
println
(
"Completed"
);
}
}
src/main/java/com/nisum/backpressureStrategy/BackpressureUsingBufferStrategy.java
0 → 100644
View file @
9bf16a22
package
com
.
nisum
.
backpressureStrategy
;
import
java.util.concurrent.Flow
;
import
java.util.concurrent.ForkJoinPool
;
import
java.util.concurrent.SubmissionPublisher
;
public
class
BackpressureUsingBufferStrategy
{
public
static
void
main
(
String
[]
args
)
throws
InterruptedException
{
final
int
BUFFER
=
4
;
Flow
.
Publisher
<
Integer
>
backPressurePublisher
=
new
SubmissionPublisher
<>(
ForkJoinPool
.
commonPool
(),
BUFFER
);
BackpressureSubscriber
<
Integer
>
backpressureSubscriber
=
new
BackpressureSubscriber
<>();
backPressurePublisher
.
subscribe
(
backpressureSubscriber
);
for
(
int
i
=
0
;
i
<
10
;
i
++)
{
System
.
out
.
println
(
Thread
.
currentThread
().
getName
()
+
" Publishing = "
+
i
);
((
SubmissionPublisher
<
Integer
>)
backPressurePublisher
).
submit
(
i
);
}
((
SubmissionPublisher
<
Integer
>)
backPressurePublisher
).
close
();
Thread
.
sleep
(
10000
);
}
}
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