dapr / dapr/java-sdk

Inconsistent behaviour between docs and implementation in Actor Timers and Reminders

Abierto
#681 11 comentarios 0 reacciones 1 asignado Asignado a @addjuarez Ver en GitHub
area/actor/runtime good first issue kind/bug P1 size/XS triaged/resolved
Lenguaje dominante
Java
Estrellas
300
Forks
230
Merge medio
5 d 1 h
PR fusionados (30 d)
5

Descripción

While implementing #658 (Adding support for TTL and intervals) I possibly came across some inconsistency with the documentation on Actor Timers and Reminders.

## Expected Behavior

The `dapr-sdk-actors` implementation - the `AbstractActor` class which a client inherits for their own Actor implementation, to be more specific - matches the documentation. Or of course, vice-versa, the documentation matches the implementation.

## Actual Behavior

The [current implementation](https://github.com/dapr/java-sdk/blob/3e5fe3993329df732a1a3e6f5b838df595724145/sdk-actors/src/main/java/io/dapr/actors/runtime/AbstractActor.java#L117) of `registerReminder()` and `registerActorTimer()` in `AbstractActor` requires both `dueTime` and `period` to be present.

I've found the following documentation on Actor Timers:
https://docs.dapr.io/developing-applications/building-blocks/actors/howto-actors/#actor-timers-and-reminders

Which states the following:
> `dueTime` is an **_optional_** parameter that sets time at which or time interval before the callback is invoked for the first time.

> `period` is an **_optional_** parameter that sets time interval between two consecutive callback invocations

[The request structure for reminders is identical to those of actors. Please refer to the actor timers examples.](https://docs.dapr.io/developing-applications/building-blocks/actors/howto-actors/#actor-reminders)

The reference API documentation states the following on Reminders: https://docs.dapr.io/reference/api/actors_api/#create-actor-reminder. I can't seem to find any information about optional fields here, or TTL for that matter.

> `dueTime` | Specifies the time after which the reminder is invoked, its format should be time.ParseDuration format
`period` | Specifies the period between different invocations, its format should be time.ParseDuration format or ISO 8601 duration format with optional recurrence.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.