durabletask 1.3.0.dev24__tar.gz → 1.3.0.dev26__tar.gz
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.
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/PKG-INFO +1 -1
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/testing/in_memory_backend.py +16 -1
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask.egg-info/PKG-INFO +1 -1
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/pyproject.toml +1 -1
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/LICENSE +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/README.md +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/__init__.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/client.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/entities/__init__.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/entities/durable_entity.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/entities/entity_context.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/entities/entity_instance_id.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/entities/entity_lock.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/entities/entity_metadata.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/entities/entity_operation_failed_exception.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/client_helpers.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/entity_state_shim.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/exceptions.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/grpc_interceptor.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/helpers.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/json_encode_output_exception.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/orchestration_entity_context.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/orchestrator_service_pb2.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/orchestrator_service_pb2.pyi +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/orchestrator_service_pb2_grpc.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/proto_task_hub_sidecar_service_stub.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/shared.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/tracing.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/py.typed +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/task.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/testing/__init__.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/worker.py +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask.egg-info/SOURCES.txt +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask.egg-info/dependency_links.txt +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask.egg-info/requires.txt +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask.egg-info/top_level.txt +0 -0
- {durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/setup.cfg +0 -0
{durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/testing/in_memory_backend.py
RENAMED
|
@@ -277,6 +277,10 @@ class InMemoryOrchestrationBackend(stubs.TaskHubSidecarServiceServicer):
|
|
|
277
277
|
instance = self._wait_for_state(request.instanceId, predicate, timeout=context.time_remaining())
|
|
278
278
|
|
|
279
279
|
if not instance:
|
|
280
|
+
with self._lock:
|
|
281
|
+
if request.instanceId in self._instances:
|
|
282
|
+
context.abort(grpc.StatusCode.DEADLINE_EXCEEDED,
|
|
283
|
+
f"Timed out waiting for instance '{request.instanceId}' to start")
|
|
280
284
|
return pb.GetInstanceResponse(exists=False)
|
|
281
285
|
|
|
282
286
|
return self._build_instance_response(instance, request.getInputsAndOutputs)
|
|
@@ -290,6 +294,10 @@ class InMemoryOrchestrationBackend(stubs.TaskHubSidecarServiceServicer):
|
|
|
290
294
|
)
|
|
291
295
|
|
|
292
296
|
if not instance:
|
|
297
|
+
with self._lock:
|
|
298
|
+
if request.instanceId in self._instances:
|
|
299
|
+
context.abort(grpc.StatusCode.DEADLINE_EXCEEDED,
|
|
300
|
+
f"Timed out waiting for instance '{request.instanceId}' to complete")
|
|
293
301
|
return pb.GetInstanceResponse(exists=False)
|
|
294
302
|
|
|
295
303
|
return self._build_instance_response(instance, request.getInputsAndOutputs)
|
|
@@ -309,7 +317,14 @@ class InMemoryOrchestrationBackend(stubs.TaskHubSidecarServiceServicer):
|
|
|
309
317
|
)
|
|
310
318
|
instance.pending_events.append(event)
|
|
311
319
|
instance.last_updated_at = datetime.now(timezone.utc)
|
|
312
|
-
|
|
320
|
+
|
|
321
|
+
# Don't dispatch work for suspended or terminal orchestrations;
|
|
322
|
+
# suspended events will be delivered when the orchestration is
|
|
323
|
+
# resumed, and terminal orchestrations can't process new events.
|
|
324
|
+
not_terminal = not self._is_terminal_status(instance.status)
|
|
325
|
+
not_suspended = instance.status != pb.ORCHESTRATION_STATUS_SUSPENDED
|
|
326
|
+
if not_terminal and not_suspended:
|
|
327
|
+
self._enqueue_orchestration(instance.instance_id)
|
|
313
328
|
|
|
314
329
|
self._logger.info(f"Raised event '{request.name}' for instance '{request.instanceId}'")
|
|
315
330
|
return pb.RaiseEventResponse()
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/entities/entity_instance_id.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/entity_state_shim.py
RENAMED
|
File without changes
|
|
File without changes
|
{durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/grpc_interceptor.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask/internal/orchestrator_service_pb2.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{durabletask-1.3.0.dev24 → durabletask-1.3.0.dev26}/durabletask.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|