I created an activity that does:
and I have another piece of code:
describe_result = await workflow_handle.describe()
Now I can see that, the string representation of
describe_result clearly contains the progress of my interests, but I can not find a way to extract it. Sure, I can parse the string, but that would be a hack.
describe_result there is
WorkflowExecutionDescription which is a wrapper around our raw protobuf API value with some friendly properties from it. We have not exposed pending activities (yet?), but you can access them via the
raw_description proto. So for the first pending activity’s heartbeat details, you could
describe_result.raw_description.pending_activities.heartbeat_details. This is a raw payloads wrapper value, which you can pass to default converter, e.g. for the first detail:
(await DataConverter.default.decode_wrapper(heartbeat_details, [int])).
This is all fairly advanced low-level API. Note that this only applies to pending activities. Once an activity is complete it will not contain heartbeat details.
I see, thanks, this does works and solve my problem for now.
I believe heartbeats are very important, they are the only programmatic way to know if a long running activity may be still behaving or was just hanging for some reason. I would certainly suggest exposing pending actives functionality to be added to the future!