[Actor] reentrancy setting not works
- Dominant language
- JavaScript
- Stars
- 217
- Forks
- 104
- PR merge metrics
- No merged PRs in 30d
Description
## Expected Behavior
`step2` should be logged as `reentrancy` is enabled.
## Actual Behavior
`step2` is not logged because of the same actorId locking.
## Steps to Reproduce the Problem
This is my code. If I understand it correctly, `step2` should be logged as `reentrancy` is enabled.
Correct me if I'm wrong. Thanks.
```ts
import { AbstractActor, DaprServer, ActorProxyBuilder, CommunicationProtocolEnum, DaprClient, ActorId } from '@dapr/dapr';
const daprHost = process.env.DAPR_HOST || '0.0.0.0';
const daprPort = process.env.DAPR_HTTP_PORT || '3500';
const serverHost = '0.0.0.0';
const serverPort = '3000';
const server = new DaprServer(serverHost, serverPort, daprHost, daprPort, CommunicationProtocolEnum.HTTP, {
actor: {
reentrancy: {
enabled: true,
},
},
});
const client = new DaprClient(daprHost, daprPort, CommunicationProtocolEnum.HTTP);
class ExampleActor extends AbstractActor {
public async step1() {
console.log('step1');
const actorId = this.getActorId();
const builder = new ActorProxyBuilder(ExampleActor, this.getDaprClient());
const actor = builder.build(actorId);
await actor.step2();
}
public async step2() {
console.log('step2');
}
public async onActivate(): Promise {
console.log('on activated');
}
public async onDeactivate(): Promise {
console.log('deactivated');
}
}
(async () => {
await server.actor.registerActor(ExampleActor);
await server.actor.init();
await server.start();
await new Promise((resolve) => setTimeout(resolve, 5 * 1000));
const resRegisteredActors = await server.actor.getRegisteredActors();
console.log(
`Registered Actor Types: ${JSON.stringify(resRegisteredActors)}`,
);
const builder = new ActorProxyBuilder(ExampleActor, client);
const actor = builder.build(ActorId.createRandomId());
await actor.step1();
})();
```
components
```yaml
---
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: statestore
namespace: default
spec:
type: state.redis
version: v1
metadata:
- name: redisHost
value: "localhost:6379"
- name: redisPassword
value: ""
- name: actorStateStore
value: "true"
---
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: lock
namespace: default
spec:
type: lock.redis
version: v1
metadata:
- name: redisHost
value: "localhost:6379"
- name: redisPassword
value: ""
---
```
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.