cadence-python-client 0.1.0__py3-none-any.whl

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.
Files changed (95) hide show
  1. cadence/__init__.py +18 -0
  2. cadence/_internal/__init__.py +8 -0
  3. cadence/_internal/activity/__init__.py +5 -0
  4. cadence/_internal/activity/_activity_executor.py +113 -0
  5. cadence/_internal/activity/_context.py +58 -0
  6. cadence/_internal/rpc/__init__.py +0 -0
  7. cadence/_internal/rpc/error.py +148 -0
  8. cadence/_internal/rpc/retry.py +104 -0
  9. cadence/_internal/rpc/yarpc.py +42 -0
  10. cadence/_internal/workflow/__init__.py +0 -0
  11. cadence/_internal/workflow/context.py +121 -0
  12. cadence/_internal/workflow/decision_events_iterator.py +161 -0
  13. cadence/_internal/workflow/decisions_helper.py +312 -0
  14. cadence/_internal/workflow/deterministic_event_loop.py +498 -0
  15. cadence/_internal/workflow/history_event_iterator.py +58 -0
  16. cadence/_internal/workflow/statemachine/__init__.py +0 -0
  17. cadence/_internal/workflow/statemachine/activity_state_machine.py +106 -0
  18. cadence/_internal/workflow/statemachine/decision_manager.py +157 -0
  19. cadence/_internal/workflow/statemachine/decision_state_machine.py +87 -0
  20. cadence/_internal/workflow/statemachine/event_dispatcher.py +76 -0
  21. cadence/_internal/workflow/statemachine/timer_state_machine.py +73 -0
  22. cadence/_internal/workflow/workflow_engine.py +245 -0
  23. cadence/_internal/workflow/workflow_intance.py +44 -0
  24. cadence/activity.py +255 -0
  25. cadence/api/v1/__init__.py +92 -0
  26. cadence/api/v1/common_pb2.py +90 -0
  27. cadence/api/v1/common_pb2.pyi +200 -0
  28. cadence/api/v1/common_pb2_grpc.py +24 -0
  29. cadence/api/v1/decision_pb2.py +67 -0
  30. cadence/api/v1/decision_pb2.pyi +225 -0
  31. cadence/api/v1/decision_pb2_grpc.py +24 -0
  32. cadence/api/v1/domain_pb2.py +68 -0
  33. cadence/api/v1/domain_pb2.pyi +145 -0
  34. cadence/api/v1/domain_pb2_grpc.py +24 -0
  35. cadence/api/v1/error_pb2.py +59 -0
  36. cadence/api/v1/error_pb2.pyi +82 -0
  37. cadence/api/v1/error_pb2_grpc.py +24 -0
  38. cadence/api/v1/history_pb2.py +134 -0
  39. cadence/api/v1/history_pb2.pyi +780 -0
  40. cadence/api/v1/history_pb2_grpc.py +24 -0
  41. cadence/api/v1/query_pb2.py +49 -0
  42. cadence/api/v1/query_pb2.pyi +59 -0
  43. cadence/api/v1/query_pb2_grpc.py +24 -0
  44. cadence/api/v1/service_domain_pb2.py +76 -0
  45. cadence/api/v1/service_domain_pb2.pyi +164 -0
  46. cadence/api/v1/service_domain_pb2_grpc.py +327 -0
  47. cadence/api/v1/service_meta_pb2.py +41 -0
  48. cadence/api/v1/service_meta_pb2.pyi +17 -0
  49. cadence/api/v1/service_meta_pb2_grpc.py +97 -0
  50. cadence/api/v1/service_visibility_pb2.py +71 -0
  51. cadence/api/v1/service_visibility_pb2.pyi +149 -0
  52. cadence/api/v1/service_visibility_pb2_grpc.py +362 -0
  53. cadence/api/v1/service_worker_pb2.py +116 -0
  54. cadence/api/v1/service_worker_pb2.pyi +350 -0
  55. cadence/api/v1/service_worker_pb2_grpc.py +743 -0
  56. cadence/api/v1/service_workflow_pb2.py +126 -0
  57. cadence/api/v1/service_workflow_pb2.pyi +395 -0
  58. cadence/api/v1/service_workflow_pb2_grpc.py +861 -0
  59. cadence/api/v1/tasklist_pb2.py +78 -0
  60. cadence/api/v1/tasklist_pb2.pyi +147 -0
  61. cadence/api/v1/tasklist_pb2_grpc.py +24 -0
  62. cadence/api/v1/visibility_pb2.py +47 -0
  63. cadence/api/v1/visibility_pb2.pyi +53 -0
  64. cadence/api/v1/visibility_pb2_grpc.py +24 -0
  65. cadence/api/v1/workflow_pb2.py +89 -0
  66. cadence/api/v1/workflow_pb2.pyi +365 -0
  67. cadence/api/v1/workflow_pb2_grpc.py +24 -0
  68. cadence/client.py +382 -0
  69. cadence/data_converter.py +78 -0
  70. cadence/error.py +111 -0
  71. cadence/metrics/__init__.py +12 -0
  72. cadence/metrics/constants.py +136 -0
  73. cadence/metrics/metrics.py +56 -0
  74. cadence/metrics/prometheus.py +165 -0
  75. cadence/sample/__init__.py +1 -0
  76. cadence/sample/client_example.py +15 -0
  77. cadence/sample/grpc_usage_example.py +230 -0
  78. cadence/sample/simple_usage_example.py +155 -0
  79. cadence/signal.py +174 -0
  80. cadence/worker/__init__.py +13 -0
  81. cadence/worker/_activity.py +60 -0
  82. cadence/worker/_base_task_handler.py +71 -0
  83. cadence/worker/_decision.py +62 -0
  84. cadence/worker/_decision_task_handler.py +285 -0
  85. cadence/worker/_poller.py +64 -0
  86. cadence/worker/_registry.py +245 -0
  87. cadence/worker/_types.py +26 -0
  88. cadence/worker/_worker.py +56 -0
  89. cadence/workflow.py +271 -0
  90. cadence_python_client-0.1.0.dist-info/METADATA +180 -0
  91. cadence_python_client-0.1.0.dist-info/RECORD +95 -0
  92. cadence_python_client-0.1.0.dist-info/WHEEL +5 -0
  93. cadence_python_client-0.1.0.dist-info/licenses/LICENSE +201 -0
  94. cadence_python_client-0.1.0.dist-info/licenses/NOTICE +19 -0
  95. cadence_python_client-0.1.0.dist-info/top_level.txt +1 -0
@@ -0,0 +1,743 @@
1
+ # Generated by the gRPC Python protocol compiler plugin. DO NOT EDIT!
2
+ """Client and server classes corresponding to protobuf-defined services."""
3
+ import grpc
4
+ import warnings
5
+
6
+ from cadence.api.v1 import service_worker_pb2 as cadence_dot_api_dot_v1_dot_service__worker__pb2
7
+
8
+ GRPC_GENERATED_VERSION = '1.71.2'
9
+ GRPC_VERSION = grpc.__version__
10
+ _version_not_supported = False
11
+
12
+ try:
13
+ from grpc._utilities import first_version_is_lower
14
+ _version_not_supported = first_version_is_lower(GRPC_VERSION, GRPC_GENERATED_VERSION)
15
+ except ImportError:
16
+ _version_not_supported = True
17
+
18
+ if _version_not_supported:
19
+ raise RuntimeError(
20
+ f'The grpc package installed is at version {GRPC_VERSION},'
21
+ + f' but the generated code in cadence/api/v1/service_worker_pb2_grpc.py depends on'
22
+ + f' grpcio>={GRPC_GENERATED_VERSION}.'
23
+ + f' Please upgrade your grpc module to grpcio>={GRPC_GENERATED_VERSION}'
24
+ + f' or downgrade your generated code using grpcio-tools<={GRPC_VERSION}.'
25
+ )
26
+
27
+
28
+ class WorkerAPIStub(object):
29
+ """WorkerAPI is exposed to provide support for long running applications. Such applications are
30
+ expected to have a worker which regularly polls for DecisionTask and ActivityTask from the WorkflowService. For each
31
+ DecisionTask, application is expected to process the history of events for that session and respond back with next
32
+ decisions. For each ActivityTask, application is expected to execute the actual logic for that task and respond back
33
+ with completion or failure. Worker is expected to regularly heartbeat while activity task is running.
34
+ """
35
+
36
+ def __init__(self, channel):
37
+ """Constructor.
38
+
39
+ Args:
40
+ channel: A grpc.Channel.
41
+ """
42
+ self.PollForDecisionTask = channel.unary_unary(
43
+ '/uber.cadence.api.v1.WorkerAPI/PollForDecisionTask',
44
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForDecisionTaskRequest.SerializeToString,
45
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForDecisionTaskResponse.FromString,
46
+ _registered_method=True)
47
+ self.RespondDecisionTaskCompleted = channel.unary_unary(
48
+ '/uber.cadence.api.v1.WorkerAPI/RespondDecisionTaskCompleted',
49
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskCompletedRequest.SerializeToString,
50
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskCompletedResponse.FromString,
51
+ _registered_method=True)
52
+ self.RespondDecisionTaskFailed = channel.unary_unary(
53
+ '/uber.cadence.api.v1.WorkerAPI/RespondDecisionTaskFailed',
54
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskFailedRequest.SerializeToString,
55
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskFailedResponse.FromString,
56
+ _registered_method=True)
57
+ self.PollForActivityTask = channel.unary_unary(
58
+ '/uber.cadence.api.v1.WorkerAPI/PollForActivityTask',
59
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForActivityTaskRequest.SerializeToString,
60
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForActivityTaskResponse.FromString,
61
+ _registered_method=True)
62
+ self.RespondActivityTaskCompleted = channel.unary_unary(
63
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskCompleted',
64
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedRequest.SerializeToString,
65
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedResponse.FromString,
66
+ _registered_method=True)
67
+ self.RespondActivityTaskCompletedByID = channel.unary_unary(
68
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskCompletedByID',
69
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedByIDRequest.SerializeToString,
70
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedByIDResponse.FromString,
71
+ _registered_method=True)
72
+ self.RespondActivityTaskFailed = channel.unary_unary(
73
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskFailed',
74
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedRequest.SerializeToString,
75
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedResponse.FromString,
76
+ _registered_method=True)
77
+ self.RespondActivityTaskFailedByID = channel.unary_unary(
78
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskFailedByID',
79
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedByIDRequest.SerializeToString,
80
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedByIDResponse.FromString,
81
+ _registered_method=True)
82
+ self.RespondActivityTaskCanceled = channel.unary_unary(
83
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskCanceled',
84
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledRequest.SerializeToString,
85
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledResponse.FromString,
86
+ _registered_method=True)
87
+ self.RespondActivityTaskCanceledByID = channel.unary_unary(
88
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskCanceledByID',
89
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledByIDRequest.SerializeToString,
90
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledByIDResponse.FromString,
91
+ _registered_method=True)
92
+ self.RecordActivityTaskHeartbeat = channel.unary_unary(
93
+ '/uber.cadence.api.v1.WorkerAPI/RecordActivityTaskHeartbeat',
94
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatRequest.SerializeToString,
95
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatResponse.FromString,
96
+ _registered_method=True)
97
+ self.RecordActivityTaskHeartbeatByID = channel.unary_unary(
98
+ '/uber.cadence.api.v1.WorkerAPI/RecordActivityTaskHeartbeatByID',
99
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatByIDRequest.SerializeToString,
100
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatByIDResponse.FromString,
101
+ _registered_method=True)
102
+ self.RespondQueryTaskCompleted = channel.unary_unary(
103
+ '/uber.cadence.api.v1.WorkerAPI/RespondQueryTaskCompleted',
104
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondQueryTaskCompletedRequest.SerializeToString,
105
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondQueryTaskCompletedResponse.FromString,
106
+ _registered_method=True)
107
+ self.ResetStickyTaskList = channel.unary_unary(
108
+ '/uber.cadence.api.v1.WorkerAPI/ResetStickyTaskList',
109
+ request_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.ResetStickyTaskListRequest.SerializeToString,
110
+ response_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.ResetStickyTaskListResponse.FromString,
111
+ _registered_method=True)
112
+
113
+
114
+ class WorkerAPIServicer(object):
115
+ """WorkerAPI is exposed to provide support for long running applications. Such applications are
116
+ expected to have a worker which regularly polls for DecisionTask and ActivityTask from the WorkflowService. For each
117
+ DecisionTask, application is expected to process the history of events for that session and respond back with next
118
+ decisions. For each ActivityTask, application is expected to execute the actual logic for that task and respond back
119
+ with completion or failure. Worker is expected to regularly heartbeat while activity task is running.
120
+ """
121
+
122
+ def PollForDecisionTask(self, request, context):
123
+ """PollForDecisionTask is called by application worker to process DecisionTask from a specific taskList.
124
+ A DecisionTask is dispatched to callers for active workflow executions, with pending decisions.
125
+ Application is then expected to call 'RespondDecisionTaskCompleted' API when it is done processing the DecisionTask.
126
+ It will also create a 'DecisionTaskStarted' event in the history for that session before handing off DecisionTask to
127
+ application worker.
128
+ """
129
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
130
+ context.set_details('Method not implemented!')
131
+ raise NotImplementedError('Method not implemented!')
132
+
133
+ def RespondDecisionTaskCompleted(self, request, context):
134
+ """RespondDecisionTaskCompleted is called by application worker to complete a DecisionTask handed as a result of
135
+ 'PollForDecisionTask' API call. Completing a DecisionTask will result in new events for the workflow execution and
136
+ potentially new ActivityTask being created for corresponding decisions. It will also create a DecisionTaskCompleted
137
+ event in the history for that session. Use the 'taskToken' provided as response of PollForDecisionTask API call
138
+ for completing the DecisionTask.
139
+ The response could contain a new decision task if there is one or if the request asking for one.
140
+ """
141
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
142
+ context.set_details('Method not implemented!')
143
+ raise NotImplementedError('Method not implemented!')
144
+
145
+ def RespondDecisionTaskFailed(self, request, context):
146
+ """RespondDecisionTaskFailed is called by application worker to indicate failure. This results in
147
+ DecisionTaskFailedEvent written to the history and a new DecisionTask created. This API can be used by client to
148
+ either clear sticky tasklist or report any panics during DecisionTask processing. Cadence will only append first
149
+ DecisionTaskFailed event to the history of workflow execution for consecutive failures.
150
+ """
151
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
152
+ context.set_details('Method not implemented!')
153
+ raise NotImplementedError('Method not implemented!')
154
+
155
+ def PollForActivityTask(self, request, context):
156
+ """PollForActivityTask is called by application worker to process ActivityTask from a specific taskList. ActivityTask
157
+ is dispatched to callers whenever a ScheduleTask decision is made for a workflow execution.
158
+ Application is expected to call 'RespondActivityTaskCompleted' or 'RespondActivityTaskFailed' once it is done
159
+ processing the task.
160
+ Application also needs to call 'RecordActivityTaskHeartbeat' API within 'heartbeatTimeoutSeconds' interval to
161
+ prevent the task from getting timed out. An event 'ActivityTaskStarted' event is also written to workflow execution
162
+ history before the ActivityTask is dispatched to application worker.
163
+ """
164
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
165
+ context.set_details('Method not implemented!')
166
+ raise NotImplementedError('Method not implemented!')
167
+
168
+ def RespondActivityTaskCompleted(self, request, context):
169
+ """RespondActivityTaskCompleted is called by application worker when it is done processing an ActivityTask. It will
170
+ result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask
171
+ created for the workflow so new decisions could be made. Use the 'taskToken' provided as response of
172
+ PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid
173
+ anymore due to activity timeout.
174
+ """
175
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
176
+ context.set_details('Method not implemented!')
177
+ raise NotImplementedError('Method not implemented!')
178
+
179
+ def RespondActivityTaskCompletedByID(self, request, context):
180
+ """RespondActivityTaskCompletedByID is called by application worker when it is done processing an ActivityTask.
181
+ It will result in a new 'ActivityTaskCompleted' event being written to the workflow history and a new DecisionTask
182
+ created for the workflow so new decisions could be made. Similar to RespondActivityTaskCompleted but use Domain,
183
+ WorkflowID and ActivityID instead of 'taskToken' for completion. It fails with 'EntityNotExistsError'
184
+ if the these IDs are not valid anymore due to activity timeout.
185
+ """
186
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
187
+ context.set_details('Method not implemented!')
188
+ raise NotImplementedError('Method not implemented!')
189
+
190
+ def RespondActivityTaskFailed(self, request, context):
191
+ """RespondActivityTaskFailed is called by application worker when it is done processing an ActivityTask. It will
192
+ result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask
193
+ created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of
194
+ PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid
195
+ anymore due to activity timeout.
196
+ """
197
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
198
+ context.set_details('Method not implemented!')
199
+ raise NotImplementedError('Method not implemented!')
200
+
201
+ def RespondActivityTaskFailedByID(self, request, context):
202
+ """RespondActivityTaskFailedByID is called by application worker when it is done processing an ActivityTask.
203
+ It will result in a new 'ActivityTaskFailed' event being written to the workflow history and a new DecisionTask
204
+ created for the workflow instance so new decisions could be made. Similar to RespondActivityTaskFailed but use
205
+ Domain, WorkflowID and ActivityID instead of 'taskToken' for completion. It fails with 'EntityNotExistsError'
206
+ if the these IDs are not valid anymore due to activity timeout.
207
+ """
208
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
209
+ context.set_details('Method not implemented!')
210
+ raise NotImplementedError('Method not implemented!')
211
+
212
+ def RespondActivityTaskCanceled(self, request, context):
213
+ """RespondActivityTaskCanceled is called by application worker when it is successfully canceled an ActivityTask.
214
+ It will result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask
215
+ created for the workflow instance so new decisions could be made. Use the 'taskToken' provided as response of
216
+ PollForActivityTask API call for completion. It fails with 'EntityNotExistsError' if the taskToken is not valid
217
+ anymore due to activity timeout.
218
+ """
219
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
220
+ context.set_details('Method not implemented!')
221
+ raise NotImplementedError('Method not implemented!')
222
+
223
+ def RespondActivityTaskCanceledByID(self, request, context):
224
+ """RespondActivityTaskCanceledByID is called by application worker when it is successfully canceled an ActivityTask.
225
+ It will result in a new 'ActivityTaskCanceled' event being written to the workflow history and a new DecisionTask
226
+ created for the workflow instance so new decisions could be made. Similar to RespondActivityTaskCanceled but use
227
+ Domain, WorkflowID and ActivityID instead of 'taskToken' for completion. It fails with 'EntityNotExistsError'
228
+ if the these IDs are not valid anymore due to activity timeout.
229
+ """
230
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
231
+ context.set_details('Method not implemented!')
232
+ raise NotImplementedError('Method not implemented!')
233
+
234
+ def RecordActivityTaskHeartbeat(self, request, context):
235
+ """RecordActivityTaskHeartbeat is called by application worker while it is processing an ActivityTask. If worker fails
236
+ to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as timedout and
237
+ 'ActivityTaskTimedOut' event will be written to the workflow history. Calling 'RecordActivityTaskHeartbeat' will
238
+ fail with 'EntityNotExistsError' in such situations. Use the 'taskToken' provided as response of
239
+ PollForActivityTask API call for heartbeating.
240
+ """
241
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
242
+ context.set_details('Method not implemented!')
243
+ raise NotImplementedError('Method not implemented!')
244
+
245
+ def RecordActivityTaskHeartbeatByID(self, request, context):
246
+ """RecordActivityTaskHeartbeatByID is called by application worker while it is processing an ActivityTask. If worker
247
+ fails to heartbeat within 'heartbeatTimeoutSeconds' interval for the ActivityTask, then it will be marked as
248
+ timed out and 'ActivityTaskTimedOut' event will be written to the workflow history.
249
+ Calling 'RecordActivityTaskHeartbeatByID' will fail with 'EntityNotExistsError' in such situations. Instead of
250
+ using 'taskToken' like in RecordActivityTaskHeartbeat, use Domain, WorkflowID and ActivityID.
251
+ """
252
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
253
+ context.set_details('Method not implemented!')
254
+ raise NotImplementedError('Method not implemented!')
255
+
256
+ def RespondQueryTaskCompleted(self, request, context):
257
+ """RespondQueryTaskCompleted is called by application worker to complete a QueryTask (which is a DecisionTask for query)
258
+ as a result of 'PollForDecisionTask' API call. Completing a QueryTask will unblock the client call to 'QueryWorkflow'
259
+ API and return the query result to client as a response to 'QueryWorkflow' API call.
260
+ """
261
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
262
+ context.set_details('Method not implemented!')
263
+ raise NotImplementedError('Method not implemented!')
264
+
265
+ def ResetStickyTaskList(self, request, context):
266
+ """Reset the sticky tasklist related information in mutable state of a given workflow.
267
+ Things cleared are:
268
+ 1. StickyTaskList
269
+ 2. StickyScheduleToStartTimeout
270
+ 3. ClientLibraryVersion
271
+ 4. ClientFeatureVersion
272
+ 5. ClientImpl
273
+ """
274
+ context.set_code(grpc.StatusCode.UNIMPLEMENTED)
275
+ context.set_details('Method not implemented!')
276
+ raise NotImplementedError('Method not implemented!')
277
+
278
+
279
+ def add_WorkerAPIServicer_to_server(servicer, server):
280
+ rpc_method_handlers = {
281
+ 'PollForDecisionTask': grpc.unary_unary_rpc_method_handler(
282
+ servicer.PollForDecisionTask,
283
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForDecisionTaskRequest.FromString,
284
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForDecisionTaskResponse.SerializeToString,
285
+ ),
286
+ 'RespondDecisionTaskCompleted': grpc.unary_unary_rpc_method_handler(
287
+ servicer.RespondDecisionTaskCompleted,
288
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskCompletedRequest.FromString,
289
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskCompletedResponse.SerializeToString,
290
+ ),
291
+ 'RespondDecisionTaskFailed': grpc.unary_unary_rpc_method_handler(
292
+ servicer.RespondDecisionTaskFailed,
293
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskFailedRequest.FromString,
294
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskFailedResponse.SerializeToString,
295
+ ),
296
+ 'PollForActivityTask': grpc.unary_unary_rpc_method_handler(
297
+ servicer.PollForActivityTask,
298
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForActivityTaskRequest.FromString,
299
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForActivityTaskResponse.SerializeToString,
300
+ ),
301
+ 'RespondActivityTaskCompleted': grpc.unary_unary_rpc_method_handler(
302
+ servicer.RespondActivityTaskCompleted,
303
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedRequest.FromString,
304
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedResponse.SerializeToString,
305
+ ),
306
+ 'RespondActivityTaskCompletedByID': grpc.unary_unary_rpc_method_handler(
307
+ servicer.RespondActivityTaskCompletedByID,
308
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedByIDRequest.FromString,
309
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedByIDResponse.SerializeToString,
310
+ ),
311
+ 'RespondActivityTaskFailed': grpc.unary_unary_rpc_method_handler(
312
+ servicer.RespondActivityTaskFailed,
313
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedRequest.FromString,
314
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedResponse.SerializeToString,
315
+ ),
316
+ 'RespondActivityTaskFailedByID': grpc.unary_unary_rpc_method_handler(
317
+ servicer.RespondActivityTaskFailedByID,
318
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedByIDRequest.FromString,
319
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedByIDResponse.SerializeToString,
320
+ ),
321
+ 'RespondActivityTaskCanceled': grpc.unary_unary_rpc_method_handler(
322
+ servicer.RespondActivityTaskCanceled,
323
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledRequest.FromString,
324
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledResponse.SerializeToString,
325
+ ),
326
+ 'RespondActivityTaskCanceledByID': grpc.unary_unary_rpc_method_handler(
327
+ servicer.RespondActivityTaskCanceledByID,
328
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledByIDRequest.FromString,
329
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledByIDResponse.SerializeToString,
330
+ ),
331
+ 'RecordActivityTaskHeartbeat': grpc.unary_unary_rpc_method_handler(
332
+ servicer.RecordActivityTaskHeartbeat,
333
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatRequest.FromString,
334
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatResponse.SerializeToString,
335
+ ),
336
+ 'RecordActivityTaskHeartbeatByID': grpc.unary_unary_rpc_method_handler(
337
+ servicer.RecordActivityTaskHeartbeatByID,
338
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatByIDRequest.FromString,
339
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatByIDResponse.SerializeToString,
340
+ ),
341
+ 'RespondQueryTaskCompleted': grpc.unary_unary_rpc_method_handler(
342
+ servicer.RespondQueryTaskCompleted,
343
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondQueryTaskCompletedRequest.FromString,
344
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondQueryTaskCompletedResponse.SerializeToString,
345
+ ),
346
+ 'ResetStickyTaskList': grpc.unary_unary_rpc_method_handler(
347
+ servicer.ResetStickyTaskList,
348
+ request_deserializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.ResetStickyTaskListRequest.FromString,
349
+ response_serializer=cadence_dot_api_dot_v1_dot_service__worker__pb2.ResetStickyTaskListResponse.SerializeToString,
350
+ ),
351
+ }
352
+ generic_handler = grpc.method_handlers_generic_handler(
353
+ 'uber.cadence.api.v1.WorkerAPI', rpc_method_handlers)
354
+ server.add_generic_rpc_handlers((generic_handler,))
355
+ server.add_registered_method_handlers('uber.cadence.api.v1.WorkerAPI', rpc_method_handlers)
356
+
357
+
358
+ # This class is part of an EXPERIMENTAL API.
359
+ class WorkerAPI(object):
360
+ """WorkerAPI is exposed to provide support for long running applications. Such applications are
361
+ expected to have a worker which regularly polls for DecisionTask and ActivityTask from the WorkflowService. For each
362
+ DecisionTask, application is expected to process the history of events for that session and respond back with next
363
+ decisions. For each ActivityTask, application is expected to execute the actual logic for that task and respond back
364
+ with completion or failure. Worker is expected to regularly heartbeat while activity task is running.
365
+ """
366
+
367
+ @staticmethod
368
+ def PollForDecisionTask(request,
369
+ target,
370
+ options=(),
371
+ channel_credentials=None,
372
+ call_credentials=None,
373
+ insecure=False,
374
+ compression=None,
375
+ wait_for_ready=None,
376
+ timeout=None,
377
+ metadata=None):
378
+ return grpc.experimental.unary_unary(
379
+ request,
380
+ target,
381
+ '/uber.cadence.api.v1.WorkerAPI/PollForDecisionTask',
382
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForDecisionTaskRequest.SerializeToString,
383
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForDecisionTaskResponse.FromString,
384
+ options,
385
+ channel_credentials,
386
+ insecure,
387
+ call_credentials,
388
+ compression,
389
+ wait_for_ready,
390
+ timeout,
391
+ metadata,
392
+ _registered_method=True)
393
+
394
+ @staticmethod
395
+ def RespondDecisionTaskCompleted(request,
396
+ target,
397
+ options=(),
398
+ channel_credentials=None,
399
+ call_credentials=None,
400
+ insecure=False,
401
+ compression=None,
402
+ wait_for_ready=None,
403
+ timeout=None,
404
+ metadata=None):
405
+ return grpc.experimental.unary_unary(
406
+ request,
407
+ target,
408
+ '/uber.cadence.api.v1.WorkerAPI/RespondDecisionTaskCompleted',
409
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskCompletedRequest.SerializeToString,
410
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskCompletedResponse.FromString,
411
+ options,
412
+ channel_credentials,
413
+ insecure,
414
+ call_credentials,
415
+ compression,
416
+ wait_for_ready,
417
+ timeout,
418
+ metadata,
419
+ _registered_method=True)
420
+
421
+ @staticmethod
422
+ def RespondDecisionTaskFailed(request,
423
+ target,
424
+ options=(),
425
+ channel_credentials=None,
426
+ call_credentials=None,
427
+ insecure=False,
428
+ compression=None,
429
+ wait_for_ready=None,
430
+ timeout=None,
431
+ metadata=None):
432
+ return grpc.experimental.unary_unary(
433
+ request,
434
+ target,
435
+ '/uber.cadence.api.v1.WorkerAPI/RespondDecisionTaskFailed',
436
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskFailedRequest.SerializeToString,
437
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondDecisionTaskFailedResponse.FromString,
438
+ options,
439
+ channel_credentials,
440
+ insecure,
441
+ call_credentials,
442
+ compression,
443
+ wait_for_ready,
444
+ timeout,
445
+ metadata,
446
+ _registered_method=True)
447
+
448
+ @staticmethod
449
+ def PollForActivityTask(request,
450
+ target,
451
+ options=(),
452
+ channel_credentials=None,
453
+ call_credentials=None,
454
+ insecure=False,
455
+ compression=None,
456
+ wait_for_ready=None,
457
+ timeout=None,
458
+ metadata=None):
459
+ return grpc.experimental.unary_unary(
460
+ request,
461
+ target,
462
+ '/uber.cadence.api.v1.WorkerAPI/PollForActivityTask',
463
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForActivityTaskRequest.SerializeToString,
464
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.PollForActivityTaskResponse.FromString,
465
+ options,
466
+ channel_credentials,
467
+ insecure,
468
+ call_credentials,
469
+ compression,
470
+ wait_for_ready,
471
+ timeout,
472
+ metadata,
473
+ _registered_method=True)
474
+
475
+ @staticmethod
476
+ def RespondActivityTaskCompleted(request,
477
+ target,
478
+ options=(),
479
+ channel_credentials=None,
480
+ call_credentials=None,
481
+ insecure=False,
482
+ compression=None,
483
+ wait_for_ready=None,
484
+ timeout=None,
485
+ metadata=None):
486
+ return grpc.experimental.unary_unary(
487
+ request,
488
+ target,
489
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskCompleted',
490
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedRequest.SerializeToString,
491
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedResponse.FromString,
492
+ options,
493
+ channel_credentials,
494
+ insecure,
495
+ call_credentials,
496
+ compression,
497
+ wait_for_ready,
498
+ timeout,
499
+ metadata,
500
+ _registered_method=True)
501
+
502
+ @staticmethod
503
+ def RespondActivityTaskCompletedByID(request,
504
+ target,
505
+ options=(),
506
+ channel_credentials=None,
507
+ call_credentials=None,
508
+ insecure=False,
509
+ compression=None,
510
+ wait_for_ready=None,
511
+ timeout=None,
512
+ metadata=None):
513
+ return grpc.experimental.unary_unary(
514
+ request,
515
+ target,
516
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskCompletedByID',
517
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedByIDRequest.SerializeToString,
518
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCompletedByIDResponse.FromString,
519
+ options,
520
+ channel_credentials,
521
+ insecure,
522
+ call_credentials,
523
+ compression,
524
+ wait_for_ready,
525
+ timeout,
526
+ metadata,
527
+ _registered_method=True)
528
+
529
+ @staticmethod
530
+ def RespondActivityTaskFailed(request,
531
+ target,
532
+ options=(),
533
+ channel_credentials=None,
534
+ call_credentials=None,
535
+ insecure=False,
536
+ compression=None,
537
+ wait_for_ready=None,
538
+ timeout=None,
539
+ metadata=None):
540
+ return grpc.experimental.unary_unary(
541
+ request,
542
+ target,
543
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskFailed',
544
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedRequest.SerializeToString,
545
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedResponse.FromString,
546
+ options,
547
+ channel_credentials,
548
+ insecure,
549
+ call_credentials,
550
+ compression,
551
+ wait_for_ready,
552
+ timeout,
553
+ metadata,
554
+ _registered_method=True)
555
+
556
+ @staticmethod
557
+ def RespondActivityTaskFailedByID(request,
558
+ target,
559
+ options=(),
560
+ channel_credentials=None,
561
+ call_credentials=None,
562
+ insecure=False,
563
+ compression=None,
564
+ wait_for_ready=None,
565
+ timeout=None,
566
+ metadata=None):
567
+ return grpc.experimental.unary_unary(
568
+ request,
569
+ target,
570
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskFailedByID',
571
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedByIDRequest.SerializeToString,
572
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskFailedByIDResponse.FromString,
573
+ options,
574
+ channel_credentials,
575
+ insecure,
576
+ call_credentials,
577
+ compression,
578
+ wait_for_ready,
579
+ timeout,
580
+ metadata,
581
+ _registered_method=True)
582
+
583
+ @staticmethod
584
+ def RespondActivityTaskCanceled(request,
585
+ target,
586
+ options=(),
587
+ channel_credentials=None,
588
+ call_credentials=None,
589
+ insecure=False,
590
+ compression=None,
591
+ wait_for_ready=None,
592
+ timeout=None,
593
+ metadata=None):
594
+ return grpc.experimental.unary_unary(
595
+ request,
596
+ target,
597
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskCanceled',
598
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledRequest.SerializeToString,
599
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledResponse.FromString,
600
+ options,
601
+ channel_credentials,
602
+ insecure,
603
+ call_credentials,
604
+ compression,
605
+ wait_for_ready,
606
+ timeout,
607
+ metadata,
608
+ _registered_method=True)
609
+
610
+ @staticmethod
611
+ def RespondActivityTaskCanceledByID(request,
612
+ target,
613
+ options=(),
614
+ channel_credentials=None,
615
+ call_credentials=None,
616
+ insecure=False,
617
+ compression=None,
618
+ wait_for_ready=None,
619
+ timeout=None,
620
+ metadata=None):
621
+ return grpc.experimental.unary_unary(
622
+ request,
623
+ target,
624
+ '/uber.cadence.api.v1.WorkerAPI/RespondActivityTaskCanceledByID',
625
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledByIDRequest.SerializeToString,
626
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondActivityTaskCanceledByIDResponse.FromString,
627
+ options,
628
+ channel_credentials,
629
+ insecure,
630
+ call_credentials,
631
+ compression,
632
+ wait_for_ready,
633
+ timeout,
634
+ metadata,
635
+ _registered_method=True)
636
+
637
+ @staticmethod
638
+ def RecordActivityTaskHeartbeat(request,
639
+ target,
640
+ options=(),
641
+ channel_credentials=None,
642
+ call_credentials=None,
643
+ insecure=False,
644
+ compression=None,
645
+ wait_for_ready=None,
646
+ timeout=None,
647
+ metadata=None):
648
+ return grpc.experimental.unary_unary(
649
+ request,
650
+ target,
651
+ '/uber.cadence.api.v1.WorkerAPI/RecordActivityTaskHeartbeat',
652
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatRequest.SerializeToString,
653
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatResponse.FromString,
654
+ options,
655
+ channel_credentials,
656
+ insecure,
657
+ call_credentials,
658
+ compression,
659
+ wait_for_ready,
660
+ timeout,
661
+ metadata,
662
+ _registered_method=True)
663
+
664
+ @staticmethod
665
+ def RecordActivityTaskHeartbeatByID(request,
666
+ target,
667
+ options=(),
668
+ channel_credentials=None,
669
+ call_credentials=None,
670
+ insecure=False,
671
+ compression=None,
672
+ wait_for_ready=None,
673
+ timeout=None,
674
+ metadata=None):
675
+ return grpc.experimental.unary_unary(
676
+ request,
677
+ target,
678
+ '/uber.cadence.api.v1.WorkerAPI/RecordActivityTaskHeartbeatByID',
679
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatByIDRequest.SerializeToString,
680
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RecordActivityTaskHeartbeatByIDResponse.FromString,
681
+ options,
682
+ channel_credentials,
683
+ insecure,
684
+ call_credentials,
685
+ compression,
686
+ wait_for_ready,
687
+ timeout,
688
+ metadata,
689
+ _registered_method=True)
690
+
691
+ @staticmethod
692
+ def RespondQueryTaskCompleted(request,
693
+ target,
694
+ options=(),
695
+ channel_credentials=None,
696
+ call_credentials=None,
697
+ insecure=False,
698
+ compression=None,
699
+ wait_for_ready=None,
700
+ timeout=None,
701
+ metadata=None):
702
+ return grpc.experimental.unary_unary(
703
+ request,
704
+ target,
705
+ '/uber.cadence.api.v1.WorkerAPI/RespondQueryTaskCompleted',
706
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondQueryTaskCompletedRequest.SerializeToString,
707
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.RespondQueryTaskCompletedResponse.FromString,
708
+ options,
709
+ channel_credentials,
710
+ insecure,
711
+ call_credentials,
712
+ compression,
713
+ wait_for_ready,
714
+ timeout,
715
+ metadata,
716
+ _registered_method=True)
717
+
718
+ @staticmethod
719
+ def ResetStickyTaskList(request,
720
+ target,
721
+ options=(),
722
+ channel_credentials=None,
723
+ call_credentials=None,
724
+ insecure=False,
725
+ compression=None,
726
+ wait_for_ready=None,
727
+ timeout=None,
728
+ metadata=None):
729
+ return grpc.experimental.unary_unary(
730
+ request,
731
+ target,
732
+ '/uber.cadence.api.v1.WorkerAPI/ResetStickyTaskList',
733
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.ResetStickyTaskListRequest.SerializeToString,
734
+ cadence_dot_api_dot_v1_dot_service__worker__pb2.ResetStickyTaskListResponse.FromString,
735
+ options,
736
+ channel_credentials,
737
+ insecure,
738
+ call_credentials,
739
+ compression,
740
+ wait_for_ready,
741
+ timeout,
742
+ metadata,
743
+ _registered_method=True)