Skip to content

Commit e6fe124

Browse files
committed
Change spawning timeouts
1 parent a0e9005 commit e6fe124

File tree

4 files changed

+72
-21
lines changed

4 files changed

+72
-21
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ The second thing we have to do is add the spawn dependency to the project.
9393
<dependency>
9494
<groupId>com.github.eigr</groupId>
9595
<artifactId>spawn-java-std-sdk</artifactId>
96-
<version>v0.8.0</version>
96+
<version>v0.8.3</version>
9797
</dependency>
9898
```
9999
We're also going to configure a few things for our application build to work, including compiling the protobuf files.
@@ -127,7 +127,7 @@ See below a full example of the pom.xml file:
127127
<dependency>
128128
<groupId>com.github.eigr</groupId>
129129
<artifactId>spawn-java-std-sdk</artifactId>
130-
<version>v0.8.0</version>
130+
<version>v0.8.3</version>
131131
</dependency>
132132
<dependency>
133133
<groupId>ch.qos.logback</groupId>

pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<groupId>io.eigr.spawn</groupId>
55
<artifactId>spawn-java-std-sdk</artifactId>
66
<packaging>jar</packaging>
7-
<version>0.8.2</version>
7+
<version>0.8.3</version>
88
<name>spawn-java-std-sdk</name>
99
<url>http://maven.apache.org</url>
1010

src/main/java/io/eigr/spawn/api/Spawn.java

Lines changed: 65 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -160,11 +160,23 @@ private void startServer() throws SpawnException {
160160
private void registerActorSystem() throws ActorRegistrationException {
161161
ActorOuterClass.Registry registry = ActorOuterClass.Registry.newBuilder().putAllActors(getActors(this.entities)).build();
162162

163-
ActorOuterClass.ActorSystem actorSystem = ActorOuterClass.ActorSystem.newBuilder().setName(this.system).setRegistry(registry).build();
164-
165-
Protocol.ServiceInfo si = Protocol.ServiceInfo.newBuilder().setServiceName("jvm-std-sdk").setServiceVersion("0.5.0").setServiceRuntime(System.getProperty("java.version")).setProtocolMajorVersion(1).setProtocolMinorVersion(1).build();
166-
167-
Protocol.RegistrationRequest req = Protocol.RegistrationRequest.newBuilder().setServiceInfo(si).setActorSystem(actorSystem).build();
163+
ActorOuterClass.ActorSystem actorSystem = ActorOuterClass.ActorSystem.newBuilder()
164+
.setName(this.system)
165+
.setRegistry(registry)
166+
.build();
167+
168+
Protocol.ServiceInfo si = Protocol.ServiceInfo.newBuilder()
169+
.setServiceName("jvm-std-sdk")
170+
.setServiceVersion("0.5.0")
171+
.setServiceRuntime(System.getProperty("java.version"))
172+
.setProtocolMajorVersion(1)
173+
.setProtocolMinorVersion(1)
174+
.build();
175+
176+
Protocol.RegistrationRequest req = Protocol.RegistrationRequest.newBuilder()
177+
.setServiceInfo(si)
178+
.setActorSystem(actorSystem)
179+
.build();
168180

169181
log.debug("Registering Actors on Proxy. Registry: {}", req);
170182
this.client.register(req);
@@ -174,30 +186,66 @@ private Map<String, ActorOuterClass.Actor> getActors(List<Entity> entities) {
174186
return entities.stream().map(actorEntity -> {
175187
ActorOuterClass.ActorSnapshotStrategy snapshotStrategy;
176188
if (actorEntity.isStateful()) {
177-
snapshotStrategy = ActorOuterClass.ActorSnapshotStrategy.newBuilder().setTimeout(ActorOuterClass.TimeoutStrategy.newBuilder().setTimeout(actorEntity.getSnapshotTimeout()).build()).build();
189+
snapshotStrategy = ActorOuterClass.ActorSnapshotStrategy.newBuilder()
190+
.setTimeout(ActorOuterClass.TimeoutStrategy.newBuilder()
191+
.setTimeout(actorEntity.getSnapshotTimeout())
192+
.build())
193+
.build();
178194
} else {
179195
snapshotStrategy = ActorOuterClass.ActorSnapshotStrategy.newBuilder().build();
180196
}
181197

182198

183-
ActorOuterClass.ActorDeactivationStrategy deactivateStrategy = ActorOuterClass.ActorDeactivationStrategy.newBuilder().setTimeout(ActorOuterClass.TimeoutStrategy.newBuilder().setTimeout(actorEntity.getDeactivateTimeout()).build()).build();
199+
ActorOuterClass.ActorDeactivationStrategy deactivateStrategy = ActorOuterClass.ActorDeactivationStrategy.newBuilder()
200+
.setTimeout(ActorOuterClass.TimeoutStrategy.newBuilder()
201+
.setTimeout(actorEntity.getDeactivateTimeout())
202+
.build())
203+
.build();
184204

185-
ActorOuterClass.ActorSettings settings = ActorOuterClass.ActorSettings.newBuilder().setKind(actorEntity.getKind()).setStateful(actorEntity.isStateful()).setSnapshotStrategy(snapshotStrategy).setDeactivationStrategy(deactivateStrategy).setMinPoolSize(actorEntity.getMinPoolSize()).setMaxPoolSize(actorEntity.getMaxPoolSize()).build();
205+
ActorOuterClass.ActorSettings settings = ActorOuterClass.ActorSettings.newBuilder()
206+
.setKind(actorEntity.getKind())
207+
.setStateful(actorEntity.isStateful())
208+
.setSnapshotStrategy(snapshotStrategy)
209+
.setDeactivationStrategy(deactivateStrategy)
210+
.setMinPoolSize(actorEntity.getMinPoolSize())
211+
.setMaxPoolSize(actorEntity.getMaxPoolSize())
212+
.build();
186213

187214
Map<String, String> tags = new HashMap<>();
188-
ActorOuterClass.Metadata metadata = ActorOuterClass.Metadata.newBuilder().setChannelGroup(actorEntity.getChannel()).putAllTags(tags).build();
189-
190-
return ActorOuterClass.Actor.newBuilder().setId(ActorOuterClass.ActorId.newBuilder().setName(actorEntity.getActorName()).setSystem(this.system).build()).setMetadata(metadata).setSettings(settings).addAllActions(getActions(actorEntity)).addAllTimerActions(getTimerActions(actorEntity)).setState(ActorOuterClass.ActorState.newBuilder().build()).build();
215+
ActorOuterClass.Metadata metadata = ActorOuterClass.Metadata.newBuilder()
216+
.setChannelGroup(actorEntity.getChannel()).putAllTags(tags)
217+
.build();
218+
219+
return ActorOuterClass.Actor.newBuilder()
220+
.setId(ActorOuterClass.ActorId.newBuilder()
221+
.setName(actorEntity.getActorName())
222+
.setSystem(this.system).build())
223+
.setMetadata(metadata)
224+
.setSettings(settings)
225+
.addAllActions(getActions(actorEntity))
226+
.addAllTimerActions(getTimerActions(actorEntity))
227+
.setState(ActorOuterClass.ActorState.newBuilder()
228+
.build())
229+
.build();
191230

192231
}).collect(Collectors.toMap(actor -> actor.getId().getName(), Function.identity()));
193232
}
194233

195234
private List<ActorOuterClass.Action> getActions(Entity actorEntity) {
196-
return actorEntity.getActions().values().stream().filter(v -> Entity.EntityMethodType.DIRECT.equals(v.getType())).map(action -> ActorOuterClass.Action.newBuilder().setName(action.getName()).build()).collect(Collectors.toList());
235+
return actorEntity.getActions().values().stream()
236+
.filter(v -> Entity.EntityMethodType.DIRECT.equals(v.getType()))
237+
.map(action -> ActorOuterClass.Action.newBuilder().setName(action.getName()).build())
238+
.collect(Collectors.toList());
197239
}
198240

199241
private List<ActorOuterClass.FixedTimerAction> getTimerActions(Entity actorEntity) {
200-
List<ActorOuterClass.FixedTimerAction> timerActions = actorEntity.getTimerActions().values().stream().filter(v -> Entity.EntityMethodType.TIMER.equals(v.getType())).map(action -> ActorOuterClass.FixedTimerAction.newBuilder().setAction(ActorOuterClass.Action.newBuilder().setName(action.getName()).build()).setSeconds(action.getFixedPeriod()).build()).collect(Collectors.toList());
242+
List<ActorOuterClass.FixedTimerAction> timerActions = actorEntity.getTimerActions().values()
243+
.stream().filter(v -> Entity.EntityMethodType.TIMER.equals(v.getType()))
244+
.map(action -> ActorOuterClass.FixedTimerAction.newBuilder()
245+
.setAction(ActorOuterClass.Action.newBuilder()
246+
.setName(action.getName()).build())
247+
.setSeconds(action.getFixedPeriod()).build())
248+
.collect(Collectors.toList());
201249

202250
log.debug("Actor have TimeActions: {}", timerActions);
203251
return timerActions;
@@ -299,7 +347,10 @@ public SpawnSystem withTransportOptions(TransportOpts opts) {
299347
}
300348

301349
public Spawn build() {
302-
this.actorIdCache = Caffeine.newBuilder().maximumSize(CACHE_MAXIMUM_SIZE).expireAfterWrite(Duration.ofSeconds(CACHE_EXPIRE_AFTER_WRITE_SECONDS)).build();
350+
this.actorIdCache = Caffeine.newBuilder()
351+
.maximumSize(CACHE_MAXIMUM_SIZE)
352+
.expireAfterWrite(Duration.ofSeconds(CACHE_EXPIRE_AFTER_WRITE_SECONDS))
353+
.build();
303354

304355
this.client = new OkHttpSpawnClient(this.system, this.transportOpts.getProxyHost(), this.transportOpts.getProxyPort());
305356

src/main/java/io/eigr/spawn/internal/transport/client/OkHttpSpawnClient.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,10 @@ public OkHttpSpawnClient(String system, String proxyHost, int proxyPort) {
4040
.build();
4141

4242
this.spawnClient = new OkHttpClient.Builder()
43-
.connectTimeout(60, TimeUnit.SECONDS)
44-
.readTimeout(60, TimeUnit.SECONDS)
45-
.writeTimeout(60, TimeUnit.SECONDS)
46-
.callTimeout(200, TimeUnit.SECONDS)
43+
.connectTimeout(120, TimeUnit.SECONDS)
44+
.readTimeout(120, TimeUnit.SECONDS)
45+
.writeTimeout(120, TimeUnit.SECONDS)
46+
.callTimeout(400, TimeUnit.SECONDS)
4747
.connectionPool(new ConnectionPool(256, 100, TimeUnit.SECONDS))
4848
.build();
4949
}

0 commit comments

Comments
 (0)