@effect/cluster 0.52.1 → 0.52.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/ClusterWorkflowEngine.js +83 -89
- package/dist/cjs/ClusterWorkflowEngine.js.map +1 -1
- package/dist/cjs/Entity.js +1 -1
- package/dist/cjs/Entity.js.map +1 -1
- package/dist/cjs/Sharding.js +34 -29
- package/dist/cjs/Sharding.js.map +1 -1
- package/dist/cjs/ShardingConfig.js +2 -0
- package/dist/cjs/ShardingConfig.js.map +1 -1
- package/dist/cjs/Singleton.js +1 -1
- package/dist/cjs/Singleton.js.map +1 -1
- package/dist/dts/ClusterWorkflowEngine.d.ts +3 -2
- package/dist/dts/ClusterWorkflowEngine.d.ts.map +1 -1
- package/dist/dts/Sharding.d.ts +2 -2
- package/dist/dts/Sharding.d.ts.map +1 -1
- package/dist/dts/ShardingConfig.d.ts +12 -0
- package/dist/dts/ShardingConfig.d.ts.map +1 -1
- package/dist/esm/ClusterWorkflowEngine.js +83 -89
- package/dist/esm/ClusterWorkflowEngine.js.map +1 -1
- package/dist/esm/Entity.js +1 -1
- package/dist/esm/Entity.js.map +1 -1
- package/dist/esm/Sharding.js +34 -29
- package/dist/esm/Sharding.js.map +1 -1
- package/dist/esm/ShardingConfig.js +2 -0
- package/dist/esm/ShardingConfig.js.map +1 -1
- package/dist/esm/Singleton.js +1 -1
- package/dist/esm/Singleton.js.map +1 -1
- package/package.json +4 -4
- package/src/ClusterWorkflowEngine.ts +13 -18
- package/src/Entity.ts +1 -1
- package/src/Sharding.ts +50 -46
- package/src/ShardingConfig.ts +11 -0
- package/src/Singleton.ts +1 -1
|
@@ -153,88 +153,80 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
153
153
|
register(workflow, execute) {
|
|
154
154
|
// eslint-disable-next-line @typescript-eslint/no-this-alias
|
|
155
155
|
const engine = this;
|
|
156
|
-
return Effect.suspend(() => {
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
let parent;
|
|
171
|
-
if (payload[payloadParentKey]) {
|
|
172
|
-
parent = payload[payloadParentKey];
|
|
156
|
+
return Effect.suspend(() => sharding.registerEntity(ensureEntity(workflow), Effect.gen(function* () {
|
|
157
|
+
const address = yield* Entity.CurrentAddress;
|
|
158
|
+
const executionId = address.entityId;
|
|
159
|
+
return {
|
|
160
|
+
run: request => {
|
|
161
|
+
const instance = WorkflowInstance.initial(workflow, executionId);
|
|
162
|
+
const payload = request.payload;
|
|
163
|
+
let parent;
|
|
164
|
+
if (payload[payloadParentKey]) {
|
|
165
|
+
parent = payload[payloadParentKey];
|
|
166
|
+
}
|
|
167
|
+
return execute(workflow.payloadSchema.make(payload), executionId).pipe(Effect.ensuring(Effect.suspend(() => {
|
|
168
|
+
if (!instance.suspended) {
|
|
169
|
+
return parent ? ensureSuccess(sendResumeParent(parent)) : Effect.void;
|
|
173
170
|
}
|
|
174
|
-
return
|
|
175
|
-
if (
|
|
176
|
-
return
|
|
177
|
-
}
|
|
178
|
-
return engine.deferredResult(InterruptSignal).pipe(Effect.flatMap(maybeResult => {
|
|
179
|
-
if (Option.isNone(maybeResult)) {
|
|
180
|
-
return Effect.void;
|
|
181
|
-
}
|
|
182
|
-
instance.suspended = false;
|
|
183
|
-
instance.interrupted = true;
|
|
184
|
-
return Effect.zipRight(Effect.ignore(clearClock({
|
|
185
|
-
workflow,
|
|
186
|
-
executionId
|
|
187
|
-
})), Effect.withFiberRuntime(fiber => Effect.interruptible(Fiber.interrupt(fiber))));
|
|
188
|
-
}), Effect.orDie);
|
|
189
|
-
})), Workflow.intoResult, Effect.provideService(WorkflowInstance, instance));
|
|
190
|
-
},
|
|
191
|
-
activity(request) {
|
|
192
|
-
const activityId = `${executionId}/${request.payload.name}`;
|
|
193
|
-
const instance = WorkflowInstance.initial(workflow, executionId);
|
|
194
|
-
interruptedActivities.delete(activityId);
|
|
195
|
-
return Effect.gen(function* () {
|
|
196
|
-
let entry = activities.get(activityId);
|
|
197
|
-
while (!entry) {
|
|
198
|
-
const latch = Effect.unsafeMakeLatch();
|
|
199
|
-
activityLatches.set(activityId, latch);
|
|
200
|
-
yield* latch.await;
|
|
201
|
-
entry = activities.get(activityId);
|
|
202
|
-
}
|
|
203
|
-
const contextMap = new Map(entry.runtime.context.unsafeMap);
|
|
204
|
-
contextMap.set(Activity.CurrentAttempt.key, request.payload.attempt);
|
|
205
|
-
contextMap.set(WorkflowInstance.key, instance);
|
|
206
|
-
const runtime = Runtime.make({
|
|
207
|
-
context: Context.unsafeMake(contextMap),
|
|
208
|
-
fiberRefs: entry.runtime.fiberRefs,
|
|
209
|
-
runtimeFlags: Runtime.defaultRuntimeFlags
|
|
210
|
-
});
|
|
211
|
-
return yield* entry.activity.executeEncoded.pipe(Effect.provide(runtime));
|
|
212
|
-
}).pipe(Workflow.intoResult, Effect.catchAllCause(cause => {
|
|
213
|
-
const interruptors = Cause.interruptors(cause);
|
|
214
|
-
// we only want to store interrupts as suspends when the
|
|
215
|
-
// client requested it
|
|
216
|
-
const ids = Array.from(interruptors, id => Array.from(FiberId.ids(id))).flat();
|
|
217
|
-
const suspend = ids.includes(RpcServer.fiberIdClientInterrupt.id);
|
|
218
|
-
if (suspend) {
|
|
219
|
-
interruptedActivities.add(activityId);
|
|
220
|
-
return Effect.succeed(new Workflow.Suspended());
|
|
171
|
+
return engine.deferredResult(InterruptSignal).pipe(Effect.flatMap(maybeResult => {
|
|
172
|
+
if (Option.isNone(maybeResult)) {
|
|
173
|
+
return Effect.void;
|
|
221
174
|
}
|
|
222
|
-
|
|
223
|
-
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
}));
|
|
229
|
-
},
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
175
|
+
instance.suspended = false;
|
|
176
|
+
instance.interrupted = true;
|
|
177
|
+
return Effect.zipRight(Effect.ignore(clearClock({
|
|
178
|
+
workflow,
|
|
179
|
+
executionId
|
|
180
|
+
})), Effect.withFiberRuntime(fiber => Effect.interruptible(Fiber.interrupt(fiber))));
|
|
181
|
+
}), Effect.orDie);
|
|
182
|
+
})), Workflow.intoResult, Effect.provideService(WorkflowInstance, instance));
|
|
183
|
+
},
|
|
184
|
+
activity(request) {
|
|
185
|
+
const activityId = `${executionId}/${request.payload.name}`;
|
|
186
|
+
const instance = WorkflowInstance.initial(workflow, executionId);
|
|
187
|
+
interruptedActivities.delete(activityId);
|
|
188
|
+
return Effect.gen(function* () {
|
|
189
|
+
let entry = activities.get(activityId);
|
|
190
|
+
while (!entry) {
|
|
191
|
+
const latch = Effect.unsafeMakeLatch();
|
|
192
|
+
activityLatches.set(activityId, latch);
|
|
193
|
+
yield* latch.await;
|
|
194
|
+
entry = activities.get(activityId);
|
|
195
|
+
}
|
|
196
|
+
const contextMap = new Map(entry.runtime.context.unsafeMap);
|
|
197
|
+
contextMap.set(Activity.CurrentAttempt.key, request.payload.attempt);
|
|
198
|
+
contextMap.set(WorkflowInstance.key, instance);
|
|
199
|
+
const runtime = Runtime.make({
|
|
200
|
+
context: Context.unsafeMake(contextMap),
|
|
201
|
+
fiberRefs: entry.runtime.fiberRefs,
|
|
202
|
+
runtimeFlags: Runtime.defaultRuntimeFlags
|
|
203
|
+
});
|
|
204
|
+
return yield* entry.activity.executeEncoded.pipe(Effect.provide(runtime));
|
|
205
|
+
}).pipe(Workflow.intoResult, Effect.catchAllCause(cause => {
|
|
206
|
+
const interruptors = Cause.interruptors(cause);
|
|
207
|
+
// we only want to store interrupts as suspends when the
|
|
208
|
+
// client requested it
|
|
209
|
+
const ids = Array.from(interruptors, id => Array.from(FiberId.ids(id))).flat();
|
|
210
|
+
const suspend = ids.includes(RpcServer.fiberIdClientInterrupt.id);
|
|
211
|
+
if (suspend) {
|
|
212
|
+
interruptedActivities.add(activityId);
|
|
213
|
+
return Effect.succeed(new Workflow.Suspended());
|
|
214
|
+
}
|
|
215
|
+
return Effect.failCause(cause);
|
|
216
|
+
}), Effect.provideService(WorkflowInstance, instance), Effect.provideService(Activity.CurrentAttempt, request.payload.attempt), Effect.ensuring(Effect.sync(() => {
|
|
217
|
+
activities.delete(activityId);
|
|
218
|
+
})), Rpc.wrap({
|
|
219
|
+
fork: true,
|
|
220
|
+
uninterruptible: true
|
|
221
|
+
}));
|
|
222
|
+
},
|
|
223
|
+
deferred: Effect.fnUntraced(function* (request) {
|
|
224
|
+
yield* ensureSuccess(resume(workflow, executionId));
|
|
225
|
+
return request.payload.exit;
|
|
226
|
+
}),
|
|
227
|
+
resume: () => ensureSuccess(resume(workflow, executionId))
|
|
228
|
+
};
|
|
229
|
+
})));
|
|
238
230
|
},
|
|
239
231
|
execute: ({
|
|
240
232
|
discard,
|
|
@@ -308,17 +300,19 @@ export const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
308
300
|
const instance = Context.get(context, WorkflowInstance);
|
|
309
301
|
yield* Effect.annotateCurrentSpan("executionId", instance.executionId);
|
|
310
302
|
const activityId = `${instance.executionId}/${activity.name}`;
|
|
311
|
-
activities.set(activityId, {
|
|
312
|
-
activity,
|
|
313
|
-
runtime
|
|
314
|
-
});
|
|
315
|
-
const latch = activityLatches.get(activityId);
|
|
316
|
-
if (latch) {
|
|
317
|
-
yield* latch.release;
|
|
318
|
-
activityLatches.delete(activityId);
|
|
319
|
-
}
|
|
320
303
|
const client = (yield* RcMap.get(clientsPartial, instance.workflow.name))(instance.executionId);
|
|
321
304
|
while (true) {
|
|
305
|
+
if (!activities.has(activityId)) {
|
|
306
|
+
activities.set(activityId, {
|
|
307
|
+
activity,
|
|
308
|
+
runtime
|
|
309
|
+
});
|
|
310
|
+
const latch = activityLatches.get(activityId);
|
|
311
|
+
if (latch) {
|
|
312
|
+
yield* latch.release;
|
|
313
|
+
activityLatches.delete(activityId);
|
|
314
|
+
}
|
|
315
|
+
}
|
|
322
316
|
const result = yield* Effect.orDie(client.activity({
|
|
323
317
|
name: activity.name,
|
|
324
318
|
attempt
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","RpcServer","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Cause","Context","DateTime","Duration","Effect","Fiber","FiberId","Layer","Option","PrimaryKey","RcMap","Runtime","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","partialEntities","ensureEntity","workflow","entity","get","name","makeWorkflowEntity","set","ensurePartialEntity","workflowName","makePartialWorkflowEntity","activities","interruptedActivities","Set","activityLatches","clients","lookup","fnUntraced","dieMessage","client","idleTimeToLive","clientsPartial","clockClient","ClockEntity","requestIdFor","options","shardGroup","annotations","ShardGroup","executionId","entityId","address","entityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","of","register","execute","engine","suspend","has","logWarning","annotateLogs","package","module","registerEntity","CurrentAddress","run","request","instance","initial","payload","parent","payloadParentKey","payloadSchema","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","withFiberRuntime","fiber","interruptible","interrupt","intoResult","provideService","activityId","delete","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","catchAllCause","cause","interruptors","ids","Array","from","flat","includes","fiberIdClientInterrupt","add","succeed","Suspended","failCause","sync","wrap","fork","uninterruptible","deferred","poll","exitSchema","protocol","requests","oreply","undefined","decode","nonSuspendedReply","isSome","deferredDone","deferredName","while","e","activityExecute","annotateCurrentSpan","release","result","tap","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","Uninterruptible","fields","optional","Struct","successSchema","errorSchema","DeferredRpc","ResumeRpc","annotateContext","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ClusterWorkflowEngine.js","names":["Rpc","RpcServer","DurableDeferred","Activity","DurableClock","Workflow","WorkflowEngine","WorkflowInstance","Arr","Cause","Context","DateTime","Duration","Effect","Fiber","FiberId","Layer","Option","PrimaryKey","RcMap","Runtime","Schedule","Schema","ClusterSchema","DeliverAt","Entity","EntityAddress","EntityId","EntityType","MessageStorage","Sharding","Snowflake","make","gen","sharding","storage","workflows","Map","entities","partialEntities","ensureEntity","workflow","entity","get","name","makeWorkflowEntity","set","ensurePartialEntity","workflowName","makePartialWorkflowEntity","activities","interruptedActivities","Set","activityLatches","clients","lookup","fnUntraced","dieMessage","client","idleTimeToLive","clientsPartial","clockClient","ClockEntity","requestIdFor","options","shardGroup","annotations","ShardGroup","executionId","entityId","address","entityType","shardId","getShardId","requestIdForPrimaryKey","tag","id","replyForRequestId","requestId","replies","repliesForUnfiltered","last","pipe","filter","reply","_tag","map","requestReply","isNone","none","value","resetActivityAttempt","activityPrimaryKey","activity","attempt","reset","retry","times","schedule","exponential","orDie","clearClock","clockAddress","type","clearAddress","resume","maybeReply","maybeSuspended","exit","pollStorage","sendResumeParent","discard","scoped","of","register","execute","engine","suspend","registerEntity","CurrentAddress","run","request","instance","initial","payload","parent","payloadParentKey","payloadSchema","ensuring","suspended","ensureSuccess","void","deferredResult","InterruptSignal","flatMap","maybeResult","interrupted","zipRight","ignore","withFiberRuntime","fiber","interruptible","interrupt","intoResult","provideService","activityId","delete","entry","latch","unsafeMakeLatch","await","contextMap","runtime","context","unsafeMap","CurrentAttempt","key","unsafeMake","fiberRefs","runtimeFlags","defaultRuntimeFlags","executeEncoded","provide","catchAllCause","cause","interruptors","ids","Array","from","flat","includes","fiberIdClientInterrupt","add","succeed","Suspended","failCause","sync","wrap","fork","uninterruptible","deferred","poll","exitSchema","protocol","requests","oreply","undefined","decode","nonSuspendedReply","isSome","deferredDone","deferredName","while","e","activityExecute","annotateCurrentSpan","has","release","result","tap","scheduleClock","now","clock","wakeUp","addDuration","duration","retryPolicy","union","spaced","effect","sandbox","ActivityRpc","String","Number","primaryKey","success","Result","Unknown","error","annotate","Persisted","Uninterruptible","fields","optional","Struct","successSchema","errorSchema","DeferredRpc","ResumeRpc","annotateContext","ExitUnknown","encodedSchema","Exit","failure","defect","Defect","ClockPayload","Class","DateTimeUtcFromNumber","symbol","ClockEntityLayer","toLayer","zero","layer","provideMerge"],"sources":["../../src/ClusterWorkflowEngine.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/Entity.js
CHANGED
|
@@ -63,7 +63,7 @@ const Proto = {
|
|
|
63
63
|
return shardingTag.pipe(Effect.flatMap(sharding => sharding.makeClient(this)));
|
|
64
64
|
},
|
|
65
65
|
toLayer(build, options) {
|
|
66
|
-
return shardingTag.pipe(Effect.flatMap(sharding => sharding.registerEntity(this, Effect.isEffect(build) ? build : Effect.succeed(build), options)), Layer.
|
|
66
|
+
return shardingTag.pipe(Effect.flatMap(sharding => sharding.registerEntity(this, Effect.isEffect(build) ? build : Effect.succeed(build), options)), Layer.scopedDiscard);
|
|
67
67
|
},
|
|
68
68
|
of: identity,
|
|
69
69
|
toLayerMailbox(build, options) {
|
package/dist/esm/Entity.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Entity.js","names":["RpcClient","RpcGroup","RpcServer","Arr","Context","Data","Effect","Equal","Exit","identity","Hash","Layer","Mailbox","Option","Predicate","Scope","ShardGroup","EntityAddress","EntityType","Envelope","hashString","ResourceMap","RunnerAddress","ShardId","ShardingConfig","Snowflake","TypeId","Symbol","for","isEntity","u","hasProperty","Proto","symbol","structure","type","that","annotate","tag","value","fromRpcGroup","protocol","annotateRpcs","annotateContext","context","annotateRpcsContext","getShardId","entityId","map","shardingTag","sharding","getShardGroup","client","pipe","flatMap","makeClient","toLayer","build","options","registerEntity","isEffect","succeed","
|
|
1
|
+
{"version":3,"file":"Entity.js","names":["RpcClient","RpcGroup","RpcServer","Arr","Context","Data","Effect","Equal","Exit","identity","Hash","Layer","Mailbox","Option","Predicate","Scope","ShardGroup","EntityAddress","EntityType","Envelope","hashString","ResourceMap","RunnerAddress","ShardId","ShardingConfig","Snowflake","TypeId","Symbol","for","isEntity","u","hasProperty","Proto","symbol","structure","type","that","annotate","tag","value","fromRpcGroup","protocol","annotateRpcs","annotateContext","context","annotateRpcsContext","getShardId","entityId","map","shardingTag","sharding","getShardGroup","client","pipe","flatMap","makeClient","toLayer","build","options","registerEntity","isEffect","succeed","scopedDiscard","of","toLayerMailbox","buildHandlers","gen","behaviour","mailbox","make","handler","envelope","async","resume","unsafeOffer","resumes","set","handlers","rpc","requests","keys","Map","complete","request","exit","sync","get","delete","replier","fail","error","failCause","cause","catchAllCause","values","void","interruptible","forkScoped","concurrency","self","Object","create","annotations","CurrentAddress","Tag","CurrentRunnerAddress","Request","Class","lastSentChunkValue","lastSentChunk","chunk","lastNonEmpty","nextSequence","isNone","sequence","GenericTag","makeTestClient","fnUntraced","entity","layer","config","makeShardId","Math","abs","shardsPerGroup","snowflakeGen","makeGenerator","runnerAddress","host","port","entityMap","contextWith","toHandlersContext","provide","add","omit","entityEntry","dieMessage","address","entityType","shardId","provideService","server","makeNoSerialization","onFromServer","response","write","supportsAck","generateRequestId","unsafeNext","onFromClient","message","_tag","payload","requestId","id","none"],"sources":["../../src/Entity.ts"],"sourcesContent":[null],"mappings":"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","ignoreList":[]}
|
package/dist/esm/Sharding.js
CHANGED
|
@@ -209,12 +209,6 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
209
209
|
});
|
|
210
210
|
const send = Effect.catchAllCause(Effect.suspend(() => {
|
|
211
211
|
const message = messages[index];
|
|
212
|
-
// if we are shutting down, we don't accept new requests
|
|
213
|
-
if (message._tag === "IncomingRequest" && isShutdown.current) {
|
|
214
|
-
if (isShutdown.current) {
|
|
215
|
-
return Effect.void;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
212
|
const address = message.envelope.address;
|
|
219
213
|
if (!MutableHashSet.has(acquiredShards, address.shardId)) {
|
|
220
214
|
return Effect.void;
|
|
@@ -224,15 +218,17 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
224
218
|
// reset address in the case that the entity is slow to register
|
|
225
219
|
MutableHashSet.add(resetAddresses, address);
|
|
226
220
|
return Effect.void;
|
|
227
|
-
} else if (state.closed) {
|
|
221
|
+
} else if (state.status === "closed") {
|
|
228
222
|
return Effect.void;
|
|
229
223
|
}
|
|
230
224
|
const isProcessing = state.manager.isProcessingFor(message);
|
|
231
|
-
// If the message might affect a currently processing request, we
|
|
232
|
-
// send it to the entity manager to be processed.
|
|
233
225
|
if (message._tag === "IncomingEnvelope" && isProcessing) {
|
|
226
|
+
// If the message might affect a currently processing request, we
|
|
227
|
+
// send it to the entity manager to be processed.
|
|
234
228
|
return state.manager.send(message);
|
|
235
|
-
} else if (isProcessing) {
|
|
229
|
+
} else if (isProcessing || state.status === "closing") {
|
|
230
|
+
// If the request is already processing, we skip it.
|
|
231
|
+
// Or if the entity is closing, we skip all incoming messages.
|
|
236
232
|
return Effect.void;
|
|
237
233
|
} else if (message._tag === "IncomingRequest" && pendingNotifications.has(message.envelope.requestId)) {
|
|
238
234
|
const entry = pendingNotifications.get(message.envelope.requestId);
|
|
@@ -417,7 +413,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
417
413
|
const state = entityManagers.get(address.entityType);
|
|
418
414
|
if (!state) {
|
|
419
415
|
return Effect.flatMap(waitForEntityManager(address.entityType), loop);
|
|
420
|
-
} else if (state.closed ||
|
|
416
|
+
} else if (state.status === "closed" || state.status === "closing" && message._tag === "IncomingRequest") {
|
|
421
417
|
// if we are shutting down, we don't accept new requests
|
|
422
418
|
return Effect.fail(new EntityNotAssignedToRunner({
|
|
423
419
|
address
|
|
@@ -435,7 +431,7 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
435
431
|
const state = entityManagers.get(address.entityType);
|
|
436
432
|
if (!state) {
|
|
437
433
|
return Effect.flatMap(waitForEntityManager(address.entityType), loop);
|
|
438
|
-
} else if (state.closed || !isEntityOnLocalShards(address)) {
|
|
434
|
+
} else if (state.status === "closed" || !isEntityOnLocalShards(address)) {
|
|
439
435
|
return Effect.fail(new EntityNotAssignedToRunner({
|
|
440
436
|
address
|
|
441
437
|
}));
|
|
@@ -811,6 +807,11 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
811
807
|
yield* Effect.logDebug("Starting singleton", address);
|
|
812
808
|
yield* FiberMap.run(singletonFibers, address, wrappedRun);
|
|
813
809
|
}
|
|
810
|
+
yield* Effect.addFinalizer(() => {
|
|
811
|
+
const map = singletons.get(address.shardId);
|
|
812
|
+
MutableHashMap.remove(map, address);
|
|
813
|
+
return FiberMap.remove(singletonFibers, address);
|
|
814
|
+
});
|
|
814
815
|
}, withSingletonLock);
|
|
815
816
|
const syncSingletons = withSingletonLock(Effect.gen(function* () {
|
|
816
817
|
for (const [shardId, map] of singletons) {
|
|
@@ -835,9 +836,9 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
835
836
|
const entityManagerLatches = new Map();
|
|
836
837
|
const registerEntity = Effect.fnUntraced(function* (entity, build, options) {
|
|
837
838
|
if (Option.isNone(config.runnerAddress) || entityManagers.has(entity.type)) return;
|
|
838
|
-
const scope = yield*
|
|
839
|
+
const scope = yield* Effect.scope;
|
|
839
840
|
yield* Scope.addFinalizer(scope, Effect.sync(() => {
|
|
840
|
-
state.
|
|
841
|
+
state.status = "closed";
|
|
841
842
|
}));
|
|
842
843
|
const manager = yield* EntityManager.make(entity, build, {
|
|
843
844
|
...options,
|
|
@@ -847,10 +848,16 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
847
848
|
}).pipe(Effect.provide(context.pipe(Context.add(EntityReaper, reaper), Context.add(Scope.Scope, scope), Context.add(Snowflake.Generator, snowflakeGen))));
|
|
848
849
|
const state = {
|
|
849
850
|
entity,
|
|
850
|
-
|
|
851
|
-
closed: false,
|
|
851
|
+
status: "alive",
|
|
852
852
|
manager
|
|
853
853
|
};
|
|
854
|
+
yield* Scope.addFinalizer(scope, Effect.fiberIdWith(id => {
|
|
855
|
+
state.status = "closing";
|
|
856
|
+
internalInterruptors.add(id);
|
|
857
|
+
// if preemptive shutdown is enabled, we start shutting down Sharding
|
|
858
|
+
// too
|
|
859
|
+
return config.preemptiveShutdown ? shutdown() : Effect.void;
|
|
860
|
+
}));
|
|
854
861
|
// register entities while storage is idle
|
|
855
862
|
// this ensures message order is preserved
|
|
856
863
|
yield* withStorageReadLock(Effect.sync(() => {
|
|
@@ -864,12 +871,6 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
864
871
|
entity
|
|
865
872
|
}));
|
|
866
873
|
});
|
|
867
|
-
yield* Scope.addFinalizerExit(shardingScope, exit => Effect.forEach(entityManagers.values(), state => Effect.catchAllCause(Scope.close(state.scope, exit), cause => Effect.annotateLogs(Effect.logError("Error closing entity manager", cause), {
|
|
868
|
-
entity: state.entity.type
|
|
869
|
-
})), {
|
|
870
|
-
concurrency: "unbounded",
|
|
871
|
-
discard: true
|
|
872
|
-
}));
|
|
873
874
|
const waitForEntityManager = entityType => {
|
|
874
875
|
let latch = entityManagerLatches.get(entityType);
|
|
875
876
|
if (!latch) {
|
|
@@ -911,18 +912,22 @@ const make = /*#__PURE__*/Effect.gen(function* () {
|
|
|
911
912
|
})));
|
|
912
913
|
}
|
|
913
914
|
// --- Finalization ---
|
|
914
|
-
|
|
915
|
-
|
|
916
|
-
|
|
917
|
-
|
|
918
|
-
|
|
915
|
+
const shutdown = Effect.fnUntraced(function* (exit) {
|
|
916
|
+
if (exit) {
|
|
917
|
+
yield* Effect.logDebug("Shutting down", exit._tag === "Failure" ? exit.cause : {}).pipe(Effect.annotateLogs({
|
|
918
|
+
package: "@effect/cluster",
|
|
919
|
+
module: "Sharding"
|
|
920
|
+
}));
|
|
921
|
+
}
|
|
919
922
|
const fiberId = yield* Effect.fiberId;
|
|
920
|
-
MutableRef.set(isShutdown, true);
|
|
921
923
|
internalInterruptors.add(fiberId);
|
|
924
|
+
if (isShutdown.current) return;
|
|
925
|
+
MutableRef.set(isShutdown, true);
|
|
922
926
|
if (selfRunner) {
|
|
923
927
|
yield* Effect.ignore(runnerStorage.unregister(selfRunner.address));
|
|
924
928
|
}
|
|
925
|
-
})
|
|
929
|
+
});
|
|
930
|
+
yield* Scope.addFinalizerExit(shardingScope, shutdown);
|
|
926
931
|
const activeEntityCount = Effect.gen(function* () {
|
|
927
932
|
let count = 0;
|
|
928
933
|
for (const state of entityManagers.values()) {
|