tasker-engine 1.0.0
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.
- checksums.yaml +7 -0
- data/LICENSE +22 -0
- data/README.md +443 -0
- data/Rakefile +10 -0
- data/app/controllers/tasker/analytics_controller.rb +179 -0
- data/app/controllers/tasker/application_controller.rb +45 -0
- data/app/controllers/tasker/graphql_controller.rb +193 -0
- data/app/controllers/tasker/handlers_controller.rb +217 -0
- data/app/controllers/tasker/health_controller.rb +229 -0
- data/app/controllers/tasker/metrics_controller.rb +111 -0
- data/app/controllers/tasker/page_sort.rb +97 -0
- data/app/controllers/tasker/task_diagrams_controller.rb +30 -0
- data/app/controllers/tasker/tasks_controller.rb +123 -0
- data/app/controllers/tasker/workflow_steps_controller.rb +69 -0
- data/app/graphql/examples/all_tasks.graphql +22 -0
- data/app/graphql/examples/pending_tasks.graphql +23 -0
- data/app/graphql/tasker/graph_ql_types/annotation_type.rb +14 -0
- data/app/graphql/tasker/graph_ql_types/base_argument.rb +9 -0
- data/app/graphql/tasker/graph_ql_types/base_connection.rb +11 -0
- data/app/graphql/tasker/graph_ql_types/base_edge.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_enum.rb +9 -0
- data/app/graphql/tasker/graph_ql_types/base_field.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_input_object.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_interface.rb +14 -0
- data/app/graphql/tasker/graph_ql_types/base_object.rb +10 -0
- data/app/graphql/tasker/graph_ql_types/base_scalar.rb +9 -0
- data/app/graphql/tasker/graph_ql_types/base_union.rb +11 -0
- data/app/graphql/tasker/graph_ql_types/dependent_system_object_map_type.rb +18 -0
- data/app/graphql/tasker/graph_ql_types/dependent_system_type.rb +13 -0
- data/app/graphql/tasker/graph_ql_types/mutation_type.rb +16 -0
- data/app/graphql/tasker/graph_ql_types/named_step_type.rb +16 -0
- data/app/graphql/tasker/graph_ql_types/named_task_type.rb +14 -0
- data/app/graphql/tasker/graph_ql_types/named_tasks_named_step_type.rb +19 -0
- data/app/graphql/tasker/graph_ql_types/node_type.rb +12 -0
- data/app/graphql/tasker/graph_ql_types/query_type.rb +20 -0
- data/app/graphql/tasker/graph_ql_types/task_annotation_type.rb +17 -0
- data/app/graphql/tasker/graph_ql_types/task_interface.rb +17 -0
- data/app/graphql/tasker/graph_ql_types/task_type.rb +26 -0
- data/app/graphql/tasker/graph_ql_types/workflow_step_type.rb +154 -0
- data/app/graphql/tasker/graph_ql_types.rb +42 -0
- data/app/graphql/tasker/mutations/base_mutation.rb +13 -0
- data/app/graphql/tasker/mutations/cancel_step.rb +29 -0
- data/app/graphql/tasker/mutations/cancel_task.rb +29 -0
- data/app/graphql/tasker/mutations/create_task.rb +52 -0
- data/app/graphql/tasker/mutations/update_step.rb +36 -0
- data/app/graphql/tasker/mutations/update_task.rb +41 -0
- data/app/graphql/tasker/queries/all_annotation_types.rb +17 -0
- data/app/graphql/tasker/queries/all_tasks.rb +23 -0
- data/app/graphql/tasker/queries/base_query.rb +9 -0
- data/app/graphql/tasker/queries/helpers.rb +16 -0
- data/app/graphql/tasker/queries/one_step.rb +24 -0
- data/app/graphql/tasker/queries/one_task.rb +18 -0
- data/app/graphql/tasker/queries/tasks_by_annotation.rb +31 -0
- data/app/graphql/tasker/queries/tasks_by_status.rb +30 -0
- data/app/graphql/tasker/tasker_rails_schema.rb +52 -0
- data/app/jobs/tasker/application_job.rb +8 -0
- data/app/jobs/tasker/metrics_export_job.rb +252 -0
- data/app/jobs/tasker/task_runner_job.rb +224 -0
- data/app/models/tasker/annotation_type.rb +26 -0
- data/app/models/tasker/application_record.rb +70 -0
- data/app/models/tasker/dependent_system.rb +26 -0
- data/app/models/tasker/dependent_system_object_map.rb +64 -0
- data/app/models/tasker/diagram/edge.rb +106 -0
- data/app/models/tasker/diagram/flowchart.rb +137 -0
- data/app/models/tasker/diagram/node.rb +99 -0
- data/app/models/tasker/named_step.rb +41 -0
- data/app/models/tasker/named_task.rb +121 -0
- data/app/models/tasker/named_tasks_named_step.rb +82 -0
- data/app/models/tasker/step_dag_relationship.rb +65 -0
- data/app/models/tasker/step_readiness_status.rb +59 -0
- data/app/models/tasker/task.rb +424 -0
- data/app/models/tasker/task_annotation.rb +36 -0
- data/app/models/tasker/task_diagram.rb +332 -0
- data/app/models/tasker/task_execution_context.rb +29 -0
- data/app/models/tasker/task_namespace.rb +41 -0
- data/app/models/tasker/task_transition.rb +235 -0
- data/app/models/tasker/workflow_step.rb +461 -0
- data/app/models/tasker/workflow_step_edge.rb +94 -0
- data/app/models/tasker/workflow_step_transition.rb +434 -0
- data/app/serializers/tasker/annotation_type_serializer.rb +8 -0
- data/app/serializers/tasker/handler_serializer.rb +109 -0
- data/app/serializers/tasker/task_annotation_serializer.rb +32 -0
- data/app/serializers/tasker/task_serializer.rb +168 -0
- data/app/serializers/tasker/workflow_step_serializer.rb +27 -0
- data/app/services/tasker/analytics_service.rb +409 -0
- data/app/views/tasker/task/_diagram.html.erb +32 -0
- data/config/initializers/dry_struct.rb +11 -0
- data/config/initializers/statesman.rb +6 -0
- data/config/initializers/tasker_orchestration.rb +17 -0
- data/config/initializers/time_formats.rb +4 -0
- data/config/routes.rb +34 -0
- data/config/tasker/subscriptions/example_integrations.yml +67 -0
- data/config/tasker/system_events.yml +305 -0
- data/db/functions/calculate_dependency_levels_v01.sql +45 -0
- data/db/functions/get_analytics_metrics_v01.sql +137 -0
- data/db/functions/get_slowest_steps_v01.sql +82 -0
- data/db/functions/get_slowest_tasks_v01.sql +96 -0
- data/db/functions/get_step_readiness_status_batch_v01.sql +140 -0
- data/db/functions/get_step_readiness_status_v01.sql +139 -0
- data/db/functions/get_system_health_counts_v01.sql +108 -0
- data/db/functions/get_task_execution_context_v01.sql +108 -0
- data/db/functions/get_task_execution_contexts_batch_v01.sql +104 -0
- data/db/init/schema.sql +2277 -0
- data/db/migrate/20250701165431_initial_tasker_schema.rb +116 -0
- data/db/views/tasker_step_dag_relationships_v01.sql +69 -0
- data/docs/APPLICATION_GENERATOR.md +384 -0
- data/docs/AUTH.md +1780 -0
- data/docs/CIRCUIT_BREAKER.md +224 -0
- data/docs/DEVELOPER_GUIDE.md +2665 -0
- data/docs/EVENT_SYSTEM.md +637 -0
- data/docs/EXECUTION_CONFIGURATION.md +341 -0
- data/docs/FLOW_CHART.md +149 -0
- data/docs/HEALTH.md +542 -0
- data/docs/METRICS.md +731 -0
- data/docs/OPTIMIZATION_PLAN.md +1479 -0
- data/docs/OVERVIEW.md +552 -0
- data/docs/QUICK_START.md +270 -0
- data/docs/REGISTRY_SYSTEMS.md +373 -0
- data/docs/REST_API.md +632 -0
- data/docs/ROADMAP.md +221 -0
- data/docs/SQL_FUNCTIONS.md +1408 -0
- data/docs/TASK_DIAGRAM.md +252 -0
- data/docs/TASK_EXECUTION_CONTROL_FLOW.md +237 -0
- data/docs/TELEMETRY.md +795 -0
- data/docs/TROUBLESHOOTING.md +756 -0
- data/docs/TaskHandlerGenerator.html +255 -0
- data/docs/Tasker/Analysis/RuntimeGraphAnalyzer.html +907 -0
- data/docs/Tasker/Analysis/TemplateGraphAnalyzer.html +1236 -0
- data/docs/Tasker/Analysis.html +117 -0
- data/docs/Tasker/AnalyticsController.html +450 -0
- data/docs/Tasker/AnalyticsService/BottleneckAnalytics.html +816 -0
- data/docs/Tasker/AnalyticsService/PerformanceAnalytics.html +586 -0
- data/docs/Tasker/AnalyticsService.html +2221 -0
- data/docs/Tasker/AnnotationType.html +137 -0
- data/docs/Tasker/AnnotationTypeSerializer.html +124 -0
- data/docs/Tasker/ApplicationController.html +147 -0
- data/docs/Tasker/ApplicationJob.html +128 -0
- data/docs/Tasker/ApplicationRecord.html +378 -0
- data/docs/Tasker/Authentication/AuthenticationError.html +124 -0
- data/docs/Tasker/Authentication/ConfigurationError.html +124 -0
- data/docs/Tasker/Authentication/Coordinator.html +242 -0
- data/docs/Tasker/Authentication/Interface.html +560 -0
- data/docs/Tasker/Authentication/InterfaceError.html +124 -0
- data/docs/Tasker/Authentication/NoneAuthenticator.html +338 -0
- data/docs/Tasker/Authentication.html +119 -0
- data/docs/Tasker/Authorization/AuthorizationError.html +139 -0
- data/docs/Tasker/Authorization/BaseCoordinator.html +927 -0
- data/docs/Tasker/Authorization/ConfigurationError.html +153 -0
- data/docs/Tasker/Authorization/ResourceConstants/ACTIONS.html +428 -0
- data/docs/Tasker/Authorization/ResourceConstants/RESOURCES.html +365 -0
- data/docs/Tasker/Authorization/ResourceConstants.html +146 -0
- data/docs/Tasker/Authorization/ResourceRegistry.html +882 -0
- data/docs/Tasker/Authorization/UnauthorizedError.html +153 -0
- data/docs/Tasker/Authorization.html +582 -0
- data/docs/Tasker/CacheCapabilities.html +167 -0
- data/docs/Tasker/CacheStrategy.html +1297 -0
- data/docs/Tasker/Concerns/Authenticatable.html +116 -0
- data/docs/Tasker/Concerns/Authorizable/AdminStatusChecker.html +256 -0
- data/docs/Tasker/Concerns/Authorizable.html +816 -0
- data/docs/Tasker/Concerns/ControllerAuthorizable.html +157 -0
- data/docs/Tasker/Concerns/EventPublisher.html +4023 -0
- data/docs/Tasker/Concerns/IdempotentStateTransitions.html +806 -0
- data/docs/Tasker/Concerns/LifecycleEventHelpers.html +129 -0
- data/docs/Tasker/Concerns/OrchestrationPublisher.html +129 -0
- data/docs/Tasker/Concerns/StateMachineBase/ClassMethods.html +1075 -0
- data/docs/Tasker/Concerns/StateMachineBase/StateMachineBase/ClassMethods.html +191 -0
- data/docs/Tasker/Concerns/StateMachineBase/StateMachineBase.html +126 -0
- data/docs/Tasker/Concerns/StateMachineBase.html +153 -0
- data/docs/Tasker/Concerns/StructuredLogging.html +1413 -0
- data/docs/Tasker/Concerns.html +117 -0
- data/docs/Tasker/Configuration/AuthConfiguration.html +1023 -0
- data/docs/Tasker/Configuration/ConfigurationProxy.html +581 -0
- data/docs/Tasker/Configuration/DatabaseConfiguration.html +475 -0
- data/docs/Tasker/Configuration/EngineConfiguration.html +1265 -0
- data/docs/Tasker/Configuration/HealthConfiguration.html +791 -0
- data/docs/Tasker/Configuration/TelemetryConfiguration.html +1308 -0
- data/docs/Tasker/Configuration/TelemetryConfigurationProxy.html +388 -0
- data/docs/Tasker/Configuration.html +1669 -0
- data/docs/Tasker/ConfigurationError.html +143 -0
- data/docs/Tasker/ConfiguredTask.html +514 -0
- data/docs/Tasker/Constants/EventDefinitions.html +590 -0
- data/docs/Tasker/Constants/LifecycleEvents.html +137 -0
- data/docs/Tasker/Constants/ObservabilityEvents/Step.html +152 -0
- data/docs/Tasker/Constants/ObservabilityEvents/Task.html +142 -0
- data/docs/Tasker/Constants/ObservabilityEvents.html +126 -0
- data/docs/Tasker/Constants/RegistryEvents.html +285 -0
- data/docs/Tasker/Constants/StepEvents.html +177 -0
- data/docs/Tasker/Constants/TaskEvents.html +167 -0
- data/docs/Tasker/Constants/TaskExecution/ExecutionStatus.html +207 -0
- data/docs/Tasker/Constants/TaskExecution/HealthStatus.html +191 -0
- data/docs/Tasker/Constants/TaskExecution/RecommendedAction.html +207 -0
- data/docs/Tasker/Constants/TaskExecution.html +126 -0
- data/docs/Tasker/Constants/TaskFinalization/ErrorMessages.html +132 -0
- data/docs/Tasker/Constants/TaskFinalization/PendingReasons.html +207 -0
- data/docs/Tasker/Constants/TaskFinalization/ReenqueueReasons.html +239 -0
- data/docs/Tasker/Constants/TaskFinalization.html +126 -0
- data/docs/Tasker/Constants/TaskStatuses.html +223 -0
- data/docs/Tasker/Constants/TestEvents.html +163 -0
- data/docs/Tasker/Constants/WorkflowEvents.html +222 -0
- data/docs/Tasker/Constants/WorkflowStepStatuses.html +223 -0
- data/docs/Tasker/Constants.html +561 -0
- data/docs/Tasker/DependentSystem.html +137 -0
- data/docs/Tasker/DependentSystemObjectMap.html +250 -0
- data/docs/Tasker/DetectorRegistry.html +598 -0
- data/docs/Tasker/Diagram/Edge.html +1191 -0
- data/docs/Tasker/Diagram/Flowchart.html +1539 -0
- data/docs/Tasker/Diagram/Node.html +1165 -0
- data/docs/Tasker/Diagram.html +117 -0
- data/docs/Tasker/Engine.html +215 -0
- data/docs/Tasker/Error.html +139 -0
- data/docs/Tasker/Events/Bus.html +1226 -0
- data/docs/Tasker/Events/Catalog/CatalogPrinter.html +258 -0
- data/docs/Tasker/Events/Catalog/CustomEventRegistrar.html +276 -0
- data/docs/Tasker/Events/Catalog/ExamplePayloadGenerator.html +294 -0
- data/docs/Tasker/Events/Catalog.html +1291 -0
- data/docs/Tasker/Events/CustomRegistry.html +943 -0
- data/docs/Tasker/Events/DefinitionLoader.html +575 -0
- data/docs/Tasker/Events/EventPayloadBuilder/ErrorInfoExtractor.html +286 -0
- data/docs/Tasker/Events/EventPayloadBuilder/StepPayloadBuilder.html +312 -0
- data/docs/Tasker/Events/EventPayloadBuilder.html +664 -0
- data/docs/Tasker/Events/Publisher.html +365 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer/ErrorTypeClassifier.html +1128 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber/ErrorCategorizer.html +270 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber/MetricTagsExtractor.html +266 -0
- data/docs/Tasker/Events/Subscribers/BaseSubscriber.html +2556 -0
- data/docs/Tasker/Events/Subscribers/MetricsSubscriber.html +723 -0
- data/docs/Tasker/Events/Subscribers/TelemetrySubscriber.html +2251 -0
- data/docs/Tasker/Events/Subscribers.html +117 -0
- data/docs/Tasker/Events/SubscriptionLoader.html +493 -0
- data/docs/Tasker/Events.html +294 -0
- data/docs/Tasker/EventsGenerator.html +459 -0
- data/docs/Tasker/Functions/FunctionBasedAnalyticsMetrics/AnalyticsMetrics.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedAnalyticsMetrics.html +412 -0
- data/docs/Tasker/Functions/FunctionBasedDependencyLevels.html +598 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestSteps/SlowestStep.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestSteps.html +453 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestTasks/SlowestTask.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedSlowestTasks.html +453 -0
- data/docs/Tasker/Functions/FunctionBasedStepReadinessStatus.html +1457 -0
- data/docs/Tasker/Functions/FunctionBasedSystemHealthCounts/HealthMetrics.html +135 -0
- data/docs/Tasker/Functions/FunctionBasedSystemHealthCounts.html +370 -0
- data/docs/Tasker/Functions/FunctionBasedTaskExecutionContext.html +1250 -0
- data/docs/Tasker/Functions/FunctionWrapper.html +479 -0
- data/docs/Tasker/Functions.html +117 -0
- data/docs/Tasker/Generators/AuthenticatorGenerator/UsageInstructionsFormatter.html +244 -0
- data/docs/Tasker/Generators/AuthenticatorGenerator.html +373 -0
- data/docs/Tasker/Generators/AuthorizationCoordinatorGenerator.html +430 -0
- data/docs/Tasker/Generators/SubscriberGenerator.html +377 -0
- data/docs/Tasker/Generators/TaskHandlerGenerator.html +263 -0
- data/docs/Tasker/Generators.html +117 -0
- data/docs/Tasker/GraphQLTypes/AnnotationType.html +132 -0
- data/docs/Tasker/GraphQLTypes/BaseArgument.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseConnection.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseEdge.html +130 -0
- data/docs/Tasker/GraphQLTypes/BaseEnum.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseField.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseInputObject.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseInterface.html +116 -0
- data/docs/Tasker/GraphQLTypes/BaseObject.html +128 -0
- data/docs/Tasker/GraphQLTypes/BaseScalar.html +124 -0
- data/docs/Tasker/GraphQLTypes/BaseUnion.html +124 -0
- data/docs/Tasker/GraphQLTypes/DependentSystemObjectMapType.html +132 -0
- data/docs/Tasker/GraphQLTypes/DependentSystemType.html +132 -0
- data/docs/Tasker/GraphQLTypes/MutationType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NamedStepType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NamedTaskType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NamedTasksNamedStepType.html +132 -0
- data/docs/Tasker/GraphQLTypes/NodeType.html +118 -0
- data/docs/Tasker/GraphQLTypes/QueryType.html +139 -0
- data/docs/Tasker/GraphQLTypes/TaskAnnotationType.html +132 -0
- data/docs/Tasker/GraphQLTypes/TaskInterface.html +111 -0
- data/docs/Tasker/GraphQLTypes/TaskType.html +201 -0
- data/docs/Tasker/GraphQLTypes/WorkflowStepType.html +694 -0
- data/docs/Tasker/GraphQLTypes.html +130 -0
- data/docs/Tasker/GraphqlController.html +251 -0
- data/docs/Tasker/HandlerFactory.html +1518 -0
- data/docs/Tasker/HandlerSerializer.html +682 -0
- data/docs/Tasker/HandlersController.html +574 -0
- data/docs/Tasker/HashIdentityStrategy.html +278 -0
- data/docs/Tasker/Health/ReadinessChecker.html +712 -0
- data/docs/Tasker/Health/StatusChecker.html +653 -0
- data/docs/Tasker/Health.html +117 -0
- data/docs/Tasker/HealthController.html +523 -0
- data/docs/Tasker/IdentityStrategy.html +276 -0
- data/docs/Tasker/InvalidTaskHandlerConfig.html +135 -0
- data/docs/Tasker/LifecycleEvents/Events/Step.html +162 -0
- data/docs/Tasker/LifecycleEvents/Events/Task.html +162 -0
- data/docs/Tasker/LifecycleEvents/Events.html +204 -0
- data/docs/Tasker/LifecycleEvents/Publisher.html +132 -0
- data/docs/Tasker/LifecycleEvents.html +799 -0
- data/docs/Tasker/Logging/CorrelationIdGenerator.html +688 -0
- data/docs/Tasker/Logging.html +115 -0
- data/docs/Tasker/MetricsController.html +293 -0
- data/docs/Tasker/MetricsExportJob.html +414 -0
- data/docs/Tasker/Mutations/BaseMutation.html +128 -0
- data/docs/Tasker/Mutations/CancelStep.html +219 -0
- data/docs/Tasker/Mutations/CancelTask.html +221 -0
- data/docs/Tasker/Mutations/CreateTask.html +243 -0
- data/docs/Tasker/Mutations/UpdateStep.html +243 -0
- data/docs/Tasker/Mutations/UpdateTask.html +243 -0
- data/docs/Tasker/Mutations.html +117 -0
- data/docs/Tasker/NamedStep.html +216 -0
- data/docs/Tasker/NamedTask.html +910 -0
- data/docs/Tasker/NamedTasksNamedStep.html +435 -0
- data/docs/Tasker/Orchestration/BackoffCalculator.html +404 -0
- data/docs/Tasker/Orchestration/ConnectionBuilder/ConfigValidator.html +258 -0
- data/docs/Tasker/Orchestration/ConnectionBuilder.html +435 -0
- data/docs/Tasker/Orchestration/ConnectionPoolIntelligence.html +513 -0
- data/docs/Tasker/Orchestration/Coordinator.html +641 -0
- data/docs/Tasker/Orchestration/FutureStateAnalyzer.html +1045 -0
- data/docs/Tasker/Orchestration/Orchestrator.html +679 -0
- data/docs/Tasker/Orchestration/PluginIntegration.html +1127 -0
- data/docs/Tasker/Orchestration/ResponseProcessor.html +504 -0
- data/docs/Tasker/Orchestration/RetryHeaderParser.html +304 -0
- data/docs/Tasker/Orchestration/StepExecutor.html +995 -0
- data/docs/Tasker/Orchestration/StepSequenceFactory.html +644 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/BlockageChecker.html +264 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/ContextManager.html +254 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/DelayCalculator.html +556 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/FinalizationDecisionMaker.html +348 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/FinalizationProcessor.html +286 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/ReasonDeterminer.html +432 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/ReenqueueManager.html +296 -0
- data/docs/Tasker/Orchestration/TaskFinalizer/UnclearStateHandler.html +314 -0
- data/docs/Tasker/Orchestration/TaskFinalizer.html +1212 -0
- data/docs/Tasker/Orchestration/TaskInitializer.html +766 -0
- data/docs/Tasker/Orchestration/TaskReenqueuer.html +506 -0
- data/docs/Tasker/Orchestration/ViableStepDiscovery.html +442 -0
- data/docs/Tasker/Orchestration/WorkflowCoordinator.html +510 -0
- data/docs/Tasker/Orchestration.html +130 -0
- data/docs/Tasker/PageSort/PageSortParamsBuilder.html +296 -0
- data/docs/Tasker/PageSort.html +247 -0
- data/docs/Tasker/PermanentError.html +518 -0
- data/docs/Tasker/ProceduralError.html +147 -0
- data/docs/Tasker/Queries/AllAnnotationTypes.html +217 -0
- data/docs/Tasker/Queries/AllTasks.html +221 -0
- data/docs/Tasker/Queries/BaseQuery.html +128 -0
- data/docs/Tasker/Queries/Helpers.html +187 -0
- data/docs/Tasker/Queries/OneStep.html +225 -0
- data/docs/Tasker/Queries/OneTask.html +217 -0
- data/docs/Tasker/Queries/TasksByAnnotation.html +231 -0
- data/docs/Tasker/Queries/TasksByStatus.html +233 -0
- data/docs/Tasker/Queries.html +119 -0
- data/docs/Tasker/Railtie.html +124 -0
- data/docs/Tasker/Registry/BaseRegistry.html +1690 -0
- data/docs/Tasker/Registry/EventPublisher.html +667 -0
- data/docs/Tasker/Registry/InterfaceValidator.html +569 -0
- data/docs/Tasker/Registry/RegistrationError.html +132 -0
- data/docs/Tasker/Registry/RegistryError.html +139 -0
- data/docs/Tasker/Registry/StatisticsCollector.html +841 -0
- data/docs/Tasker/Registry/SubscriberRegistry.html +1504 -0
- data/docs/Tasker/Registry/ValidationError.html +132 -0
- data/docs/Tasker/Registry.html +119 -0
- data/docs/Tasker/RetryableError.html +515 -0
- data/docs/Tasker/StateMachine/Compatibility.html +282 -0
- data/docs/Tasker/StateMachine/InvalidStateTransition.html +135 -0
- data/docs/Tasker/StateMachine/StepStateMachine/StandardizedPayloadBuilder.html +260 -0
- data/docs/Tasker/StateMachine/StepStateMachine.html +2215 -0
- data/docs/Tasker/StateMachine/TaskStateMachine.html +734 -0
- data/docs/Tasker/StateMachine.html +602 -0
- data/docs/Tasker/StepDagRelationship.html +657 -0
- data/docs/Tasker/StepHandler/Api/Config.html +1091 -0
- data/docs/Tasker/StepHandler/Api.html +884 -0
- data/docs/Tasker/StepHandler/AutomaticEventPublishing.html +321 -0
- data/docs/Tasker/StepHandler/Base.html +970 -0
- data/docs/Tasker/StepHandler.html +119 -0
- data/docs/Tasker/StepReadinessStatus.html +836 -0
- data/docs/Tasker/Task.html +2575 -0
- data/docs/Tasker/TaskAnnotation.html +137 -0
- data/docs/Tasker/TaskAnnotationSerializer.html +124 -0
- data/docs/Tasker/TaskBuilder/StepNameValidator.html +264 -0
- data/docs/Tasker/TaskBuilder/StepTemplateDefiner.html +264 -0
- data/docs/Tasker/TaskBuilder.html +764 -0
- data/docs/Tasker/TaskDiagram/StepToStepEdgeBuilder.html +260 -0
- data/docs/Tasker/TaskDiagram/TaskToRootStepEdgeBuilder.html +290 -0
- data/docs/Tasker/TaskDiagram.html +548 -0
- data/docs/Tasker/TaskDiagramsController.html +240 -0
- data/docs/Tasker/TaskExecutionContext.html +469 -0
- data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/ClassBasedEventRegistrar.html +238 -0
- data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner/YamlEventRegistrar.html +254 -0
- data/docs/Tasker/TaskHandler/ClassMethods/StepTemplateDefiner.html +988 -0
- data/docs/Tasker/TaskHandler/ClassMethods.html +357 -0
- data/docs/Tasker/TaskHandler/InstanceMethods.html +1396 -0
- data/docs/Tasker/TaskHandler/StepGroup.html +1748 -0
- data/docs/Tasker/TaskHandler.html +271 -0
- data/docs/Tasker/TaskNamespace.html +312 -0
- data/docs/Tasker/TaskRunnerJob.html +406 -0
- data/docs/Tasker/TaskSerializer.html +474 -0
- data/docs/Tasker/TaskTransition.html +1517 -0
- data/docs/Tasker/TaskWorkflowSummary.html +988 -0
- data/docs/Tasker/TaskerRailsSchema/InvalidObjectTypeError.html +132 -0
- data/docs/Tasker/TaskerRailsSchema/TypeResolutionError.html +139 -0
- data/docs/Tasker/TaskerRailsSchema/UnknownInterfaceError.html +132 -0
- data/docs/Tasker/TaskerRailsSchema.html +384 -0
- data/docs/Tasker/TasksController.html +595 -0
- data/docs/Tasker/Telemetry/EventMapping.html +1307 -0
- data/docs/Tasker/Telemetry/EventRouter.html +2178 -0
- data/docs/Tasker/Telemetry/Events/ExportEvents.html +246 -0
- data/docs/Tasker/Telemetry/Events.html +115 -0
- data/docs/Tasker/Telemetry/ExportCoordinator/DistributedLockTimeoutError.html +135 -0
- data/docs/Tasker/Telemetry/ExportCoordinator.html +2137 -0
- data/docs/Tasker/Telemetry/IntelligentCacheManager.html +1083 -0
- data/docs/Tasker/Telemetry/LogBackend.html +1088 -0
- data/docs/Tasker/Telemetry/MetricTypes/Counter.html +1054 -0
- data/docs/Tasker/Telemetry/MetricTypes/Gauge.html +1270 -0
- data/docs/Tasker/Telemetry/MetricTypes/Histogram.html +1492 -0
- data/docs/Tasker/Telemetry/MetricTypes.html +153 -0
- data/docs/Tasker/Telemetry/MetricsBackend.html +2510 -0
- data/docs/Tasker/Telemetry/MetricsExportService.html +578 -0
- data/docs/Tasker/Telemetry/PluginRegistry.html +1774 -0
- data/docs/Tasker/Telemetry/Plugins/BaseExporter.html +1835 -0
- data/docs/Tasker/Telemetry/Plugins/CsvExporter.html +768 -0
- data/docs/Tasker/Telemetry/Plugins/JsonExporter.html +747 -0
- data/docs/Tasker/Telemetry/Plugins.html +117 -0
- data/docs/Tasker/Telemetry/PrometheusExporter.html +481 -0
- data/docs/Tasker/Telemetry/TraceBackend.html +891 -0
- data/docs/Tasker/Telemetry.html +130 -0
- data/docs/Tasker/Types/AuthConfig.html +886 -0
- data/docs/Tasker/Types/BackoffConfig.html +1063 -0
- data/docs/Tasker/Types/BaseConfig.html +227 -0
- data/docs/Tasker/Types/CacheConfig.html +1731 -0
- data/docs/Tasker/Types/DatabaseConfig.html +388 -0
- data/docs/Tasker/Types/DependencyGraph.html +526 -0
- data/docs/Tasker/Types/DependencyGraphConfig.html +753 -0
- data/docs/Tasker/Types/EngineConfig.html +1181 -0
- data/docs/Tasker/Types/ExecutionConfig.html +1963 -0
- data/docs/Tasker/Types/GraphEdge.html +517 -0
- data/docs/Tasker/Types/GraphMetadata.html +781 -0
- data/docs/Tasker/Types/GraphNode.html +694 -0
- data/docs/Tasker/Types/HealthConfig.html +784 -0
- data/docs/Tasker/Types/StepSequence.html +353 -0
- data/docs/Tasker/Types/StepTemplate.html +1193 -0
- data/docs/Tasker/Types/TaskRequest.html +1179 -0
- data/docs/Tasker/Types/TelemetryConfig.html +2746 -0
- data/docs/Tasker/Types.html +154 -0
- data/docs/Tasker/WorkflowStep/StepFinder.html +282 -0
- data/docs/Tasker/WorkflowStep.html +2724 -0
- data/docs/Tasker/WorkflowStepEdge.html +304 -0
- data/docs/Tasker/WorkflowStepSerializer.html +305 -0
- data/docs/Tasker/WorkflowStepTransition/TransitionDescriptionFormatter.html +282 -0
- data/docs/Tasker/WorkflowStepTransition.html +2201 -0
- data/docs/Tasker/WorkflowStepsController.html +462 -0
- data/docs/Tasker.html +452 -0
- data/docs/VISION.md +584 -0
- data/docs/WHY.md +21 -0
- data/docs/_index.html +2375 -0
- data/docs/class_list.html +54 -0
- data/docs/css/common.css +1 -0
- data/docs/css/full_list.css +58 -0
- data/docs/css/style.css +503 -0
- data/docs/events/migration_plan_outcomes.md +80 -0
- data/docs/file.README.html +541 -0
- data/docs/file_list.html +59 -0
- data/docs/frames.html +22 -0
- data/docs/index.html +541 -0
- data/docs/js/app.js +344 -0
- data/docs/js/full_list.js +242 -0
- data/docs/js/jquery.js +4 -0
- data/docs/method_list.html +9182 -0
- data/docs/top-level-namespace.html +110 -0
- data/lib/generators/tasker/authenticator_generator.rb +301 -0
- data/lib/generators/tasker/authorization_coordinator_generator.rb +139 -0
- data/lib/generators/tasker/events_generator.rb +91 -0
- data/lib/generators/tasker/subscriber_generator.rb +107 -0
- data/lib/generators/tasker/task_handler_generator.rb +138 -0
- data/lib/generators/tasker/templates/api_token_authenticator.rb.erb +113 -0
- data/lib/generators/tasker/templates/api_token_authenticator_spec.rb.erb +144 -0
- data/lib/generators/tasker/templates/authorization_coordinator.rb.erb +95 -0
- data/lib/generators/tasker/templates/authorization_coordinator_spec.rb.erb +142 -0
- data/lib/generators/tasker/templates/custom_authenticator.rb.erb +108 -0
- data/lib/generators/tasker/templates/custom_authenticator_spec.rb.erb +162 -0
- data/lib/generators/tasker/templates/custom_events.yml.erb +62 -0
- data/lib/generators/tasker/templates/custom_subscriber.rb.erb +72 -0
- data/lib/generators/tasker/templates/devise_authenticator.rb.erb +101 -0
- data/lib/generators/tasker/templates/devise_authenticator_spec.rb.erb +126 -0
- data/lib/generators/tasker/templates/initialize.rb.erb +202 -0
- data/lib/generators/tasker/templates/jwt_authenticator.rb.erb +144 -0
- data/lib/generators/tasker/templates/jwt_authenticator_spec.rb.erb +298 -0
- data/lib/generators/tasker/templates/metrics_subscriber.rb.erb +258 -0
- data/lib/generators/tasker/templates/metrics_subscriber_spec.rb.erb +308 -0
- data/lib/generators/tasker/templates/omniauth_authenticator.rb.erb +135 -0
- data/lib/generators/tasker/templates/omniauth_authenticator_spec.rb.erb +196 -0
- data/lib/generators/tasker/templates/opentelemetry_initializer.rb +52 -0
- data/lib/generators/tasker/templates/subscriber.rb.erb +64 -0
- data/lib/generators/tasker/templates/subscriber_spec.rb.erb +80 -0
- data/lib/generators/tasker/templates/task_config.yaml.erb +117 -0
- data/lib/generators/tasker/templates/task_handler.rb.erb +59 -0
- data/lib/generators/tasker/templates/task_handler_spec.rb.erb +159 -0
- data/lib/tasker/analysis/runtime_graph_analyzer.rb +1168 -0
- data/lib/tasker/analysis/template_graph_analyzer.rb +328 -0
- data/lib/tasker/authentication/coordinator.rb +78 -0
- data/lib/tasker/authentication/errors.rb +9 -0
- data/lib/tasker/authentication/interface.rb +36 -0
- data/lib/tasker/authentication/none_authenticator.rb +26 -0
- data/lib/tasker/authorization/base_coordinator.rb +112 -0
- data/lib/tasker/authorization/errors.rb +26 -0
- data/lib/tasker/authorization/resource_constants.rb +74 -0
- data/lib/tasker/authorization/resource_registry.rb +143 -0
- data/lib/tasker/authorization.rb +75 -0
- data/lib/tasker/cache_capabilities.rb +131 -0
- data/lib/tasker/cache_strategy.rb +469 -0
- data/lib/tasker/concerns/authenticatable.rb +41 -0
- data/lib/tasker/concerns/authorizable.rb +204 -0
- data/lib/tasker/concerns/controller_authorizable.rb +124 -0
- data/lib/tasker/concerns/event_publisher.rb +716 -0
- data/lib/tasker/concerns/idempotent_state_transitions.rb +128 -0
- data/lib/tasker/concerns/state_machine_base.rb +218 -0
- data/lib/tasker/concerns/structured_logging.rb +387 -0
- data/lib/tasker/configuration.rb +325 -0
- data/lib/tasker/constants/event_definitions.rb +147 -0
- data/lib/tasker/constants/registry_events.rb +54 -0
- data/lib/tasker/constants.rb +417 -0
- data/lib/tasker/engine.rb +90 -0
- data/lib/tasker/errors.rb +90 -0
- data/lib/tasker/events/catalog.rb +432 -0
- data/lib/tasker/events/custom_registry.rb +175 -0
- data/lib/tasker/events/definition_loader.rb +199 -0
- data/lib/tasker/events/event_payload_builder.rb +461 -0
- data/lib/tasker/events/publisher.rb +149 -0
- data/lib/tasker/events/subscribers/base_subscriber.rb +601 -0
- data/lib/tasker/events/subscribers/metrics_subscriber.rb +120 -0
- data/lib/tasker/events/subscribers/telemetry_subscriber.rb +462 -0
- data/lib/tasker/events/subscription_loader.rb +161 -0
- data/lib/tasker/events.rb +37 -0
- data/lib/tasker/functions/function_based_analytics_metrics.rb +103 -0
- data/lib/tasker/functions/function_based_dependency_levels.rb +54 -0
- data/lib/tasker/functions/function_based_slowest_steps.rb +84 -0
- data/lib/tasker/functions/function_based_slowest_tasks.rb +84 -0
- data/lib/tasker/functions/function_based_step_readiness_status.rb +183 -0
- data/lib/tasker/functions/function_based_system_health_counts.rb +94 -0
- data/lib/tasker/functions/function_based_task_execution_context.rb +148 -0
- data/lib/tasker/functions/function_wrapper.rb +42 -0
- data/lib/tasker/functions.rb +12 -0
- data/lib/tasker/handler_factory.rb +322 -0
- data/lib/tasker/health/readiness_checker.rb +186 -0
- data/lib/tasker/health/status_checker.rb +203 -0
- data/lib/tasker/identity_strategy.rb +38 -0
- data/lib/tasker/logging/correlation_id_generator.rb +120 -0
- data/lib/tasker/orchestration/backoff_calculator.rb +184 -0
- data/lib/tasker/orchestration/connection_builder.rb +122 -0
- data/lib/tasker/orchestration/connection_pool_intelligence.rb +177 -0
- data/lib/tasker/orchestration/coordinator.rb +119 -0
- data/lib/tasker/orchestration/future_state_analyzer.rb +137 -0
- data/lib/tasker/orchestration/plugin_integration.rb +124 -0
- data/lib/tasker/orchestration/response_processor.rb +168 -0
- data/lib/tasker/orchestration/retry_header_parser.rb +78 -0
- data/lib/tasker/orchestration/step_executor.rb +941 -0
- data/lib/tasker/orchestration/step_sequence_factory.rb +67 -0
- data/lib/tasker/orchestration/task_finalizer.rb +564 -0
- data/lib/tasker/orchestration/task_initializer.rb +140 -0
- data/lib/tasker/orchestration/task_reenqueuer.rb +71 -0
- data/lib/tasker/orchestration/viable_step_discovery.rb +65 -0
- data/lib/tasker/orchestration/workflow_coordinator.rb +294 -0
- data/lib/tasker/orchestration.rb +45 -0
- data/lib/tasker/railtie.rb +9 -0
- data/lib/tasker/registry/base_registry.rb +177 -0
- data/lib/tasker/registry/event_publisher.rb +91 -0
- data/lib/tasker/registry/interface_validator.rb +140 -0
- data/lib/tasker/registry/statistics_collector.rb +381 -0
- data/lib/tasker/registry/subscriber_registry.rb +285 -0
- data/lib/tasker/registry.rb +22 -0
- data/lib/tasker/state_machine/step_state_machine.rb +508 -0
- data/lib/tasker/state_machine/task_state_machine.rb +192 -0
- data/lib/tasker/state_machine.rb +83 -0
- data/lib/tasker/step_handler/api.rb +410 -0
- data/lib/tasker/step_handler/base.rb +206 -0
- data/lib/tasker/task_builder.rb +432 -0
- data/lib/tasker/task_handler/class_methods.rb +324 -0
- data/lib/tasker/task_handler/instance_methods.rb +293 -0
- data/lib/tasker/task_handler/step_group.rb +182 -0
- data/lib/tasker/task_handler.rb +43 -0
- data/lib/tasker/telemetry/event_mapping.rb +126 -0
- data/lib/tasker/telemetry/event_router.rb +318 -0
- data/lib/tasker/telemetry/events/export_events.rb +38 -0
- data/lib/tasker/telemetry/export_coordinator.rb +497 -0
- data/lib/tasker/telemetry/intelligent_cache_manager.rb +508 -0
- data/lib/tasker/telemetry/log_backend.rb +224 -0
- data/lib/tasker/telemetry/metric_types.rb +368 -0
- data/lib/tasker/telemetry/metrics_backend.rb +1227 -0
- data/lib/tasker/telemetry/metrics_export_service.rb +392 -0
- data/lib/tasker/telemetry/plugin_registry.rb +333 -0
- data/lib/tasker/telemetry/plugins/base_exporter.rb +246 -0
- data/lib/tasker/telemetry/plugins/csv_exporter.rb +198 -0
- data/lib/tasker/telemetry/plugins/json_exporter.rb +141 -0
- data/lib/tasker/telemetry/prometheus_exporter.rb +249 -0
- data/lib/tasker/telemetry/trace_backend.rb +186 -0
- data/lib/tasker/telemetry.rb +59 -0
- data/lib/tasker/types/auth_config.rb +81 -0
- data/lib/tasker/types/backoff_config.rb +142 -0
- data/lib/tasker/types/cache_config.rb +257 -0
- data/lib/tasker/types/database_config.rb +39 -0
- data/lib/tasker/types/dependency_graph.rb +225 -0
- data/lib/tasker/types/dependency_graph_config.rb +149 -0
- data/lib/tasker/types/engine_config.rb +131 -0
- data/lib/tasker/types/execution_config.rb +289 -0
- data/lib/tasker/types/health_config.rb +84 -0
- data/lib/tasker/types/step_sequence.rb +24 -0
- data/lib/tasker/types/step_template.rb +63 -0
- data/lib/tasker/types/task_request.rb +60 -0
- data/lib/tasker/types/telemetry_config.rb +273 -0
- data/lib/tasker/types.rb +64 -0
- data/lib/tasker/version.rb +7 -0
- data/lib/tasker.rb +82 -0
- data/lib/tasks/tasker_tasks.rake +302 -0
- metadata +958 -0
@@ -0,0 +1,1963 @@
|
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html>
|
3
|
+
<head>
|
4
|
+
<meta charset="utf-8">
|
5
|
+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
6
|
+
<title>
|
7
|
+
Class: Tasker::Types::ExecutionConfig
|
8
|
+
|
9
|
+
— Documentation by YARD 0.9.37
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="../../css/style.css" type="text/css" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="../../css/common.css" type="text/css" />
|
16
|
+
|
17
|
+
<script type="text/javascript">
|
18
|
+
pathId = "Tasker::Types::ExecutionConfig";
|
19
|
+
relpath = '../../';
|
20
|
+
</script>
|
21
|
+
|
22
|
+
|
23
|
+
<script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
|
24
|
+
|
25
|
+
<script type="text/javascript" charset="utf-8" src="../../js/app.js"></script>
|
26
|
+
|
27
|
+
|
28
|
+
</head>
|
29
|
+
<body>
|
30
|
+
<div class="nav_wrap">
|
31
|
+
<iframe id="nav" src="../../class_list.html?1"></iframe>
|
32
|
+
<div id="resizer"></div>
|
33
|
+
</div>
|
34
|
+
|
35
|
+
<div id="main" tabindex="-1">
|
36
|
+
<div id="header">
|
37
|
+
<div id="menu">
|
38
|
+
|
39
|
+
<a href="../../_index.html">Index (E)</a> »
|
40
|
+
<span class='title'><span class='object_link'><a href="../../Tasker.html" title="Tasker (module)">Tasker</a></span></span> » <span class='title'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span>
|
41
|
+
»
|
42
|
+
<span class="title">ExecutionConfig</span>
|
43
|
+
|
44
|
+
</div>
|
45
|
+
|
46
|
+
<div id="search">
|
47
|
+
|
48
|
+
<a class="full_list_link" id="class_list_link"
|
49
|
+
href="../../class_list.html">
|
50
|
+
|
51
|
+
<svg width="24" height="24">
|
52
|
+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
|
53
|
+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
|
54
|
+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
|
55
|
+
</svg>
|
56
|
+
</a>
|
57
|
+
|
58
|
+
</div>
|
59
|
+
<div class="clear"></div>
|
60
|
+
</div>
|
61
|
+
|
62
|
+
<div id="content"><h1>Class: Tasker::Types::ExecutionConfig
|
63
|
+
|
64
|
+
|
65
|
+
|
66
|
+
</h1>
|
67
|
+
<div class="box_info">
|
68
|
+
|
69
|
+
<dl>
|
70
|
+
<dt>Inherits:</dt>
|
71
|
+
<dd>
|
72
|
+
<span class="inheritName"><span class='object_link'><a href="BaseConfig.html" title="Tasker::Types::BaseConfig (class)">BaseConfig</a></span></span>
|
73
|
+
|
74
|
+
<ul class="fullTree">
|
75
|
+
<li>Object</li>
|
76
|
+
|
77
|
+
<li class="next">Dry::Struct</li>
|
78
|
+
|
79
|
+
<li class="next"><span class='object_link'><a href="BaseConfig.html" title="Tasker::Types::BaseConfig (class)">BaseConfig</a></span></li>
|
80
|
+
|
81
|
+
<li class="next">Tasker::Types::ExecutionConfig</li>
|
82
|
+
|
83
|
+
</ul>
|
84
|
+
<a href="#" class="inheritanceTree">show all</a>
|
85
|
+
|
86
|
+
</dd>
|
87
|
+
</dl>
|
88
|
+
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
|
99
|
+
<dl>
|
100
|
+
<dt>Defined in:</dt>
|
101
|
+
<dd>lib/tasker/types/execution_config.rb</dd>
|
102
|
+
</dl>
|
103
|
+
|
104
|
+
</div>
|
105
|
+
|
106
|
+
<h2>Overview</h2><div class="docstring">
|
107
|
+
<div class="discussion">
|
108
|
+
|
109
|
+
<p>Configuration type for step execution and concurrency settings</p>
|
110
|
+
|
111
|
+
<p>This configuration exposes previously hardcoded execution constants used in concurrent step processing, timeout handling, and memory management.</p>
|
112
|
+
|
113
|
+
<p>Strategic Design: - CONFIGURABLE: Performance characteristics that vary by deployment environment - ARCHITECTURAL: Carefully chosen constants based on Ruby/Rails characteristics</p>
|
114
|
+
|
115
|
+
|
116
|
+
</div>
|
117
|
+
</div>
|
118
|
+
<div class="tags">
|
119
|
+
|
120
|
+
<div class="examples">
|
121
|
+
<h4 class="tag_title">Examples:</h4>
|
122
|
+
|
123
|
+
|
124
|
+
<h5 class="example_title"><div class='inline'>
|
125
|
+
<p>Basic usage</p>
|
126
|
+
</div></h5>
|
127
|
+
|
128
|
+
<pre class="example code"><code><span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='const'>ExecutionConfig</span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="BaseConfig.html#initialize-instance_method" title="Tasker::Types::BaseConfig#initialize (method)">new</a></span></span><span class='lparen'>(</span>
|
129
|
+
<span class='label'>max_concurrent_steps_limit:</span> <span class='int'>20</span><span class='comma'>,</span> <span class='comment'># High-performance system
|
130
|
+
</span> <span class='label'>batch_timeout_base_seconds:</span> <span class='int'>60</span> <span class='comment'># API-heavy workflows
|
131
|
+
</span><span class='rparen'>)</span></code></pre>
|
132
|
+
|
133
|
+
|
134
|
+
<h5 class="example_title"><div class='inline'>
|
135
|
+
<p>Environment-specific tuning</p>
|
136
|
+
</div></h5>
|
137
|
+
|
138
|
+
<pre class="example code"><code><span class='comment'># Development environment
|
139
|
+
</span><span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='const'>ExecutionConfig</span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="BaseConfig.html#initialize-instance_method" title="Tasker::Types::BaseConfig#initialize (method)">new</a></span></span><span class='lparen'>(</span>
|
140
|
+
<span class='label'>min_concurrent_steps:</span> <span class='int'>2</span><span class='comma'>,</span>
|
141
|
+
<span class='label'>max_concurrent_steps_limit:</span> <span class='int'>6</span><span class='comma'>,</span>
|
142
|
+
<span class='label'>concurrency_cache_duration:</span> <span class='int'>60</span>
|
143
|
+
<span class='rparen'>)</span>
|
144
|
+
|
145
|
+
<span class='comment'># Production environment
|
146
|
+
</span><span class='id identifier rubyid_config'>config</span> <span class='op'>=</span> <span class='const'>ExecutionConfig</span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="BaseConfig.html#initialize-instance_method" title="Tasker::Types::BaseConfig#initialize (method)">new</a></span></span><span class='lparen'>(</span>
|
147
|
+
<span class='label'>min_concurrent_steps:</span> <span class='int'>5</span><span class='comma'>,</span>
|
148
|
+
<span class='label'>max_concurrent_steps_limit:</span> <span class='int'>25</span><span class='comma'>,</span>
|
149
|
+
<span class='label'>batch_timeout_base_seconds:</span> <span class='int'>45</span><span class='comma'>,</span>
|
150
|
+
<span class='label'>max_batch_timeout_seconds:</span> <span class='int'>300</span>
|
151
|
+
<span class='rparen'>)</span></code></pre>
|
152
|
+
|
153
|
+
</div>
|
154
|
+
|
155
|
+
|
156
|
+
</div>
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
<h2>Instance Attribute Summary <small><a href="#" class="summary_toggle">collapse</a></small></h2>
|
161
|
+
<ul class="summary">
|
162
|
+
|
163
|
+
<li class="public ">
|
164
|
+
<span class="summary_signature">
|
165
|
+
|
166
|
+
<a href="#batch_timeout_base_seconds-instance_method" title="#batch_timeout_base_seconds (instance method)">#<strong>batch_timeout_base_seconds</strong> ⇒ Integer </a>
|
167
|
+
|
168
|
+
|
169
|
+
|
170
|
+
</span>
|
171
|
+
|
172
|
+
|
173
|
+
|
174
|
+
|
175
|
+
<span class="note title readonly">readonly</span>
|
176
|
+
|
177
|
+
|
178
|
+
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
|
183
|
+
|
184
|
+
|
185
|
+
<span class="summary_desc"><div class='inline'>
|
186
|
+
<p>Base timeout in seconds (default: 30).</p>
|
187
|
+
</div></span>
|
188
|
+
|
189
|
+
</li>
|
190
|
+
|
191
|
+
|
192
|
+
<li class="public ">
|
193
|
+
<span class="summary_signature">
|
194
|
+
|
195
|
+
<a href="#batch_timeout_per_step_seconds-instance_method" title="#batch_timeout_per_step_seconds (instance method)">#<strong>batch_timeout_per_step_seconds</strong> ⇒ Integer </a>
|
196
|
+
|
197
|
+
|
198
|
+
|
199
|
+
</span>
|
200
|
+
|
201
|
+
|
202
|
+
|
203
|
+
|
204
|
+
<span class="note title readonly">readonly</span>
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
<span class="summary_desc"><div class='inline'>
|
215
|
+
<p>Per-step timeout in seconds (default: 5).</p>
|
216
|
+
</div></span>
|
217
|
+
|
218
|
+
</li>
|
219
|
+
|
220
|
+
|
221
|
+
<li class="public ">
|
222
|
+
<span class="summary_signature">
|
223
|
+
|
224
|
+
<a href="#concurrency_cache_duration-instance_method" title="#concurrency_cache_duration (instance method)">#<strong>concurrency_cache_duration</strong> ⇒ Integer </a>
|
225
|
+
|
226
|
+
|
227
|
+
|
228
|
+
</span>
|
229
|
+
|
230
|
+
|
231
|
+
|
232
|
+
|
233
|
+
<span class="note title readonly">readonly</span>
|
234
|
+
|
235
|
+
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
<span class="summary_desc"><div class='inline'>
|
244
|
+
<p>Cache duration in seconds (default: 30).</p>
|
245
|
+
</div></span>
|
246
|
+
|
247
|
+
</li>
|
248
|
+
|
249
|
+
|
250
|
+
<li class="public ">
|
251
|
+
<span class="summary_signature">
|
252
|
+
|
253
|
+
<a href="#connection_health_log_level-instance_method" title="#connection_health_log_level (instance method)">#<strong>connection_health_log_level</strong> ⇒ String </a>
|
254
|
+
|
255
|
+
|
256
|
+
|
257
|
+
</span>
|
258
|
+
|
259
|
+
|
260
|
+
|
261
|
+
|
262
|
+
<span class="note title readonly">readonly</span>
|
263
|
+
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
|
272
|
+
<span class="summary_desc"><div class='inline'>
|
273
|
+
<p>Log level (default: ‘debug’).</p>
|
274
|
+
</div></span>
|
275
|
+
|
276
|
+
</li>
|
277
|
+
|
278
|
+
|
279
|
+
<li class="public ">
|
280
|
+
<span class="summary_signature">
|
281
|
+
|
282
|
+
<a href="#connection_pressure_factors-instance_method" title="#connection_pressure_factors (instance method)">#<strong>connection_pressure_factors</strong> ⇒ Hash </a>
|
283
|
+
|
284
|
+
|
285
|
+
|
286
|
+
</span>
|
287
|
+
|
288
|
+
|
289
|
+
|
290
|
+
|
291
|
+
<span class="note title readonly">readonly</span>
|
292
|
+
|
293
|
+
|
294
|
+
|
295
|
+
|
296
|
+
|
297
|
+
|
298
|
+
|
299
|
+
|
300
|
+
|
301
|
+
<span class="summary_desc"><div class='inline'>
|
302
|
+
<p>Pressure response factors by pressure level.</p>
|
303
|
+
</div></span>
|
304
|
+
|
305
|
+
</li>
|
306
|
+
|
307
|
+
|
308
|
+
<li class="public ">
|
309
|
+
<span class="summary_signature">
|
310
|
+
|
311
|
+
<a href="#health_assessment_cache_duration-instance_method" title="#health_assessment_cache_duration (instance method)">#<strong>health_assessment_cache_duration</strong> ⇒ Integer </a>
|
312
|
+
|
313
|
+
|
314
|
+
|
315
|
+
</span>
|
316
|
+
|
317
|
+
|
318
|
+
|
319
|
+
|
320
|
+
<span class="note title readonly">readonly</span>
|
321
|
+
|
322
|
+
|
323
|
+
|
324
|
+
|
325
|
+
|
326
|
+
|
327
|
+
|
328
|
+
|
329
|
+
|
330
|
+
<span class="summary_desc"><div class='inline'>
|
331
|
+
<p>Cache duration in seconds (default: 30).</p>
|
332
|
+
</div></span>
|
333
|
+
|
334
|
+
</li>
|
335
|
+
|
336
|
+
|
337
|
+
<li class="public ">
|
338
|
+
<span class="summary_signature">
|
339
|
+
|
340
|
+
<a href="#max_batch_timeout_seconds-instance_method" title="#max_batch_timeout_seconds (instance method)">#<strong>max_batch_timeout_seconds</strong> ⇒ Integer </a>
|
341
|
+
|
342
|
+
|
343
|
+
|
344
|
+
</span>
|
345
|
+
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
<span class="note title readonly">readonly</span>
|
350
|
+
|
351
|
+
|
352
|
+
|
353
|
+
|
354
|
+
|
355
|
+
|
356
|
+
|
357
|
+
|
358
|
+
|
359
|
+
<span class="summary_desc"><div class='inline'>
|
360
|
+
<p>Maximum timeout in seconds (default: 120).</p>
|
361
|
+
</div></span>
|
362
|
+
|
363
|
+
</li>
|
364
|
+
|
365
|
+
|
366
|
+
<li class="public ">
|
367
|
+
<span class="summary_signature">
|
368
|
+
|
369
|
+
<a href="#max_concurrent_steps_limit-instance_method" title="#max_concurrent_steps_limit (instance method)">#<strong>max_concurrent_steps_limit</strong> ⇒ Integer </a>
|
370
|
+
|
371
|
+
|
372
|
+
|
373
|
+
</span>
|
374
|
+
|
375
|
+
|
376
|
+
|
377
|
+
|
378
|
+
<span class="note title readonly">readonly</span>
|
379
|
+
|
380
|
+
|
381
|
+
|
382
|
+
|
383
|
+
|
384
|
+
|
385
|
+
|
386
|
+
|
387
|
+
|
388
|
+
<span class="summary_desc"><div class='inline'>
|
389
|
+
<p>Maximum concurrent steps limit (default: 12).</p>
|
390
|
+
</div></span>
|
391
|
+
|
392
|
+
</li>
|
393
|
+
|
394
|
+
|
395
|
+
<li class="public ">
|
396
|
+
<span class="summary_signature">
|
397
|
+
|
398
|
+
<a href="#min_concurrent_steps-instance_method" title="#min_concurrent_steps (instance method)">#<strong>min_concurrent_steps</strong> ⇒ Integer </a>
|
399
|
+
|
400
|
+
|
401
|
+
|
402
|
+
</span>
|
403
|
+
|
404
|
+
|
405
|
+
|
406
|
+
|
407
|
+
<span class="note title readonly">readonly</span>
|
408
|
+
|
409
|
+
|
410
|
+
|
411
|
+
|
412
|
+
|
413
|
+
|
414
|
+
|
415
|
+
|
416
|
+
|
417
|
+
<span class="summary_desc"><div class='inline'>
|
418
|
+
<p>Minimum concurrent steps (default: 3).</p>
|
419
|
+
</div></span>
|
420
|
+
|
421
|
+
</li>
|
422
|
+
|
423
|
+
|
424
|
+
</ul>
|
425
|
+
|
426
|
+
|
427
|
+
|
428
|
+
|
429
|
+
|
430
|
+
<h2>
|
431
|
+
Instance Method Summary
|
432
|
+
<small><a href="#" class="summary_toggle">collapse</a></small>
|
433
|
+
</h2>
|
434
|
+
|
435
|
+
<ul class="summary">
|
436
|
+
|
437
|
+
<li class="public ">
|
438
|
+
<span class="summary_signature">
|
439
|
+
|
440
|
+
<a href="#calculate_batch_timeout-instance_method" title="#calculate_batch_timeout (instance method)">#<strong>calculate_batch_timeout</strong>(batch_size) ⇒ Integer </a>
|
441
|
+
|
442
|
+
|
443
|
+
|
444
|
+
</span>
|
445
|
+
|
446
|
+
|
447
|
+
|
448
|
+
|
449
|
+
|
450
|
+
|
451
|
+
|
452
|
+
|
453
|
+
|
454
|
+
<span class="summary_desc"><div class='inline'>
|
455
|
+
<p>Calculate batch timeout for a given batch size.</p>
|
456
|
+
</div></span>
|
457
|
+
|
458
|
+
</li>
|
459
|
+
|
460
|
+
|
461
|
+
<li class="public ">
|
462
|
+
<span class="summary_signature">
|
463
|
+
|
464
|
+
<a href="#future_cleanup_wait_seconds-instance_method" title="#future_cleanup_wait_seconds (instance method)">#<strong>future_cleanup_wait_seconds</strong> ⇒ Integer </a>
|
465
|
+
|
466
|
+
|
467
|
+
|
468
|
+
</span>
|
469
|
+
|
470
|
+
|
471
|
+
|
472
|
+
|
473
|
+
|
474
|
+
|
475
|
+
|
476
|
+
|
477
|
+
|
478
|
+
<span class="summary_desc"><div class='inline'>
|
479
|
+
<p>Future cleanup wait time.</p>
|
480
|
+
</div></span>
|
481
|
+
|
482
|
+
</li>
|
483
|
+
|
484
|
+
|
485
|
+
<li class="public ">
|
486
|
+
<span class="summary_signature">
|
487
|
+
|
488
|
+
<a href="#gc_trigger_batch_size_threshold-instance_method" title="#gc_trigger_batch_size_threshold (instance method)">#<strong>gc_trigger_batch_size_threshold</strong> ⇒ Integer </a>
|
489
|
+
|
490
|
+
|
491
|
+
|
492
|
+
</span>
|
493
|
+
|
494
|
+
|
495
|
+
|
496
|
+
|
497
|
+
|
498
|
+
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
<span class="summary_desc"><div class='inline'>
|
503
|
+
<p>GC trigger batch size threshold.</p>
|
504
|
+
</div></span>
|
505
|
+
|
506
|
+
</li>
|
507
|
+
|
508
|
+
|
509
|
+
<li class="public ">
|
510
|
+
<span class="summary_signature">
|
511
|
+
|
512
|
+
<a href="#gc_trigger_duration_threshold-instance_method" title="#gc_trigger_duration_threshold (instance method)">#<strong>gc_trigger_duration_threshold</strong> ⇒ Integer </a>
|
513
|
+
|
514
|
+
|
515
|
+
|
516
|
+
</span>
|
517
|
+
|
518
|
+
|
519
|
+
|
520
|
+
|
521
|
+
|
522
|
+
|
523
|
+
|
524
|
+
|
525
|
+
|
526
|
+
<span class="summary_desc"><div class='inline'>
|
527
|
+
<p>GC trigger duration threshold.</p>
|
528
|
+
</div></span>
|
529
|
+
|
530
|
+
</li>
|
531
|
+
|
532
|
+
|
533
|
+
<li class="public ">
|
534
|
+
<span class="summary_signature">
|
535
|
+
|
536
|
+
<a href="#should_trigger_gc%3F-instance_method" title="#should_trigger_gc? (instance method)">#<strong>should_trigger_gc?</strong>(batch_size, batch_duration) ⇒ Boolean </a>
|
537
|
+
|
538
|
+
|
539
|
+
|
540
|
+
</span>
|
541
|
+
|
542
|
+
|
543
|
+
|
544
|
+
|
545
|
+
|
546
|
+
|
547
|
+
|
548
|
+
|
549
|
+
|
550
|
+
<span class="summary_desc"><div class='inline'>
|
551
|
+
<p>Check if batch should trigger garbage collection.</p>
|
552
|
+
</div></span>
|
553
|
+
|
554
|
+
</li>
|
555
|
+
|
556
|
+
|
557
|
+
<li class="public ">
|
558
|
+
<span class="summary_signature">
|
559
|
+
|
560
|
+
<a href="#validate!-instance_method" title="#validate! (instance method)">#<strong>validate!</strong> ⇒ Boolean </a>
|
561
|
+
|
562
|
+
|
563
|
+
|
564
|
+
</span>
|
565
|
+
|
566
|
+
|
567
|
+
|
568
|
+
|
569
|
+
|
570
|
+
|
571
|
+
|
572
|
+
|
573
|
+
|
574
|
+
<span class="summary_desc"><div class='inline'>
|
575
|
+
<p>Comprehensive validation.</p>
|
576
|
+
</div></span>
|
577
|
+
|
578
|
+
</li>
|
579
|
+
|
580
|
+
|
581
|
+
<li class="public ">
|
582
|
+
<span class="summary_signature">
|
583
|
+
|
584
|
+
<a href="#validate_concurrency_bounds-instance_method" title="#validate_concurrency_bounds (instance method)">#<strong>validate_concurrency_bounds</strong> ⇒ Array<String> </a>
|
585
|
+
|
586
|
+
|
587
|
+
|
588
|
+
</span>
|
589
|
+
|
590
|
+
|
591
|
+
|
592
|
+
|
593
|
+
|
594
|
+
|
595
|
+
|
596
|
+
|
597
|
+
|
598
|
+
<span class="summary_desc"><div class='inline'>
|
599
|
+
<p>Validate concurrency bounds.</p>
|
600
|
+
</div></span>
|
601
|
+
|
602
|
+
</li>
|
603
|
+
|
604
|
+
|
605
|
+
<li class="public ">
|
606
|
+
<span class="summary_signature">
|
607
|
+
|
608
|
+
<a href="#validate_connection_configuration-instance_method" title="#validate_connection_configuration (instance method)">#<strong>validate_connection_configuration</strong> ⇒ Array<String> </a>
|
609
|
+
|
610
|
+
|
611
|
+
|
612
|
+
</span>
|
613
|
+
|
614
|
+
|
615
|
+
|
616
|
+
|
617
|
+
|
618
|
+
|
619
|
+
|
620
|
+
|
621
|
+
|
622
|
+
<span class="summary_desc"><div class='inline'>
|
623
|
+
<p>Validate connection configuration.</p>
|
624
|
+
</div></span>
|
625
|
+
|
626
|
+
</li>
|
627
|
+
|
628
|
+
|
629
|
+
<li class="public ">
|
630
|
+
<span class="summary_signature">
|
631
|
+
|
632
|
+
<a href="#validate_timeout_configuration-instance_method" title="#validate_timeout_configuration (instance method)">#<strong>validate_timeout_configuration</strong> ⇒ Array<String> </a>
|
633
|
+
|
634
|
+
|
635
|
+
|
636
|
+
</span>
|
637
|
+
|
638
|
+
|
639
|
+
|
640
|
+
|
641
|
+
|
642
|
+
|
643
|
+
|
644
|
+
|
645
|
+
|
646
|
+
<span class="summary_desc"><div class='inline'>
|
647
|
+
<p>Validate timeout configuration.</p>
|
648
|
+
</div></span>
|
649
|
+
|
650
|
+
</li>
|
651
|
+
|
652
|
+
|
653
|
+
</ul>
|
654
|
+
|
655
|
+
|
656
|
+
|
657
|
+
|
658
|
+
|
659
|
+
|
660
|
+
|
661
|
+
|
662
|
+
|
663
|
+
|
664
|
+
|
665
|
+
<h3 class="inherited">Methods inherited from <span class='object_link'><a href="BaseConfig.html" title="Tasker::Types::BaseConfig (class)">BaseConfig</a></span></h3>
|
666
|
+
<p class="inherited"><span class='object_link'><a href="BaseConfig.html#initialize-instance_method" title="Tasker::Types::BaseConfig#initialize (method)">#initialize</a></span></p>
|
667
|
+
|
668
|
+
<div id="constructor_details" class="method_details_list">
|
669
|
+
<h2>Constructor Details</h2>
|
670
|
+
|
671
|
+
<p class="notice">This class inherits a constructor from <span class='object_link'><a href="BaseConfig.html#initialize-instance_method" title="Tasker::Types::BaseConfig#initialize (method)">Tasker::Types::BaseConfig</a></span></p>
|
672
|
+
|
673
|
+
</div>
|
674
|
+
|
675
|
+
<div id="instance_attr_details" class="attr_details">
|
676
|
+
<h2>Instance Attribute Details</h2>
|
677
|
+
|
678
|
+
|
679
|
+
<span id=""></span>
|
680
|
+
<div class="method_details first">
|
681
|
+
<h3 class="signature first" id="batch_timeout_base_seconds-instance_method">
|
682
|
+
|
683
|
+
#<strong>batch_timeout_base_seconds</strong> ⇒ <tt>Integer</tt> <span class="extras">(readonly)</span>
|
684
|
+
|
685
|
+
|
686
|
+
|
687
|
+
|
688
|
+
|
689
|
+
</h3><div class="docstring">
|
690
|
+
<div class="discussion">
|
691
|
+
|
692
|
+
<p>Returns Base timeout in seconds (default: 30).</p>
|
693
|
+
|
694
|
+
|
695
|
+
</div>
|
696
|
+
</div>
|
697
|
+
<div class="tags">
|
698
|
+
|
699
|
+
<p class="tag_title">Returns:</p>
|
700
|
+
<ul class="return">
|
701
|
+
|
702
|
+
<li>
|
703
|
+
|
704
|
+
|
705
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
706
|
+
|
707
|
+
|
708
|
+
|
709
|
+
—
|
710
|
+
<div class='inline'>
|
711
|
+
<p>Base timeout in seconds (default: 30)</p>
|
712
|
+
</div>
|
713
|
+
|
714
|
+
</li>
|
715
|
+
|
716
|
+
</ul>
|
717
|
+
|
718
|
+
</div><table class="source_code">
|
719
|
+
<tr>
|
720
|
+
<td>
|
721
|
+
<pre class="lines">
|
722
|
+
|
723
|
+
|
724
|
+
78</pre>
|
725
|
+
</td>
|
726
|
+
<td>
|
727
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 78</span>
|
728
|
+
|
729
|
+
<span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:batch_timeout_base_seconds</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>Integer</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='int'>30</span><span class='rparen'>)</span></pre>
|
730
|
+
</td>
|
731
|
+
</tr>
|
732
|
+
</table>
|
733
|
+
</div>
|
734
|
+
|
735
|
+
|
736
|
+
<span id=""></span>
|
737
|
+
<div class="method_details ">
|
738
|
+
<h3 class="signature " id="batch_timeout_per_step_seconds-instance_method">
|
739
|
+
|
740
|
+
#<strong>batch_timeout_per_step_seconds</strong> ⇒ <tt>Integer</tt> <span class="extras">(readonly)</span>
|
741
|
+
|
742
|
+
|
743
|
+
|
744
|
+
|
745
|
+
|
746
|
+
</h3><div class="docstring">
|
747
|
+
<div class="discussion">
|
748
|
+
|
749
|
+
<p>Returns Per-step timeout in seconds (default: 5).</p>
|
750
|
+
|
751
|
+
|
752
|
+
</div>
|
753
|
+
</div>
|
754
|
+
<div class="tags">
|
755
|
+
|
756
|
+
<p class="tag_title">Returns:</p>
|
757
|
+
<ul class="return">
|
758
|
+
|
759
|
+
<li>
|
760
|
+
|
761
|
+
|
762
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
763
|
+
|
764
|
+
|
765
|
+
|
766
|
+
—
|
767
|
+
<div class='inline'>
|
768
|
+
<p>Per-step timeout in seconds (default: 5)</p>
|
769
|
+
</div>
|
770
|
+
|
771
|
+
</li>
|
772
|
+
|
773
|
+
</ul>
|
774
|
+
|
775
|
+
</div><table class="source_code">
|
776
|
+
<tr>
|
777
|
+
<td>
|
778
|
+
<pre class="lines">
|
779
|
+
|
780
|
+
|
781
|
+
87</pre>
|
782
|
+
</td>
|
783
|
+
<td>
|
784
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 87</span>
|
785
|
+
|
786
|
+
<span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:batch_timeout_per_step_seconds</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>Integer</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='int'>5</span><span class='rparen'>)</span></pre>
|
787
|
+
</td>
|
788
|
+
</tr>
|
789
|
+
</table>
|
790
|
+
</div>
|
791
|
+
|
792
|
+
|
793
|
+
<span id=""></span>
|
794
|
+
<div class="method_details ">
|
795
|
+
<h3 class="signature " id="concurrency_cache_duration-instance_method">
|
796
|
+
|
797
|
+
#<strong>concurrency_cache_duration</strong> ⇒ <tt>Integer</tt> <span class="extras">(readonly)</span>
|
798
|
+
|
799
|
+
|
800
|
+
|
801
|
+
|
802
|
+
|
803
|
+
</h3><div class="docstring">
|
804
|
+
<div class="discussion">
|
805
|
+
|
806
|
+
<p>Returns Cache duration in seconds (default: 30).</p>
|
807
|
+
|
808
|
+
|
809
|
+
</div>
|
810
|
+
</div>
|
811
|
+
<div class="tags">
|
812
|
+
|
813
|
+
<p class="tag_title">Returns:</p>
|
814
|
+
<ul class="return">
|
815
|
+
|
816
|
+
<li>
|
817
|
+
|
818
|
+
|
819
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
820
|
+
|
821
|
+
|
822
|
+
|
823
|
+
—
|
824
|
+
<div class='inline'>
|
825
|
+
<p>Cache duration in seconds (default: 30)</p>
|
826
|
+
</div>
|
827
|
+
|
828
|
+
</li>
|
829
|
+
|
830
|
+
</ul>
|
831
|
+
|
832
|
+
</div><table class="source_code">
|
833
|
+
<tr>
|
834
|
+
<td>
|
835
|
+
<pre class="lines">
|
836
|
+
|
837
|
+
|
838
|
+
69</pre>
|
839
|
+
</td>
|
840
|
+
<td>
|
841
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 69</span>
|
842
|
+
|
843
|
+
<span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:concurrency_cache_duration</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>Integer</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='int'>30</span><span class='rparen'>)</span></pre>
|
844
|
+
</td>
|
845
|
+
</tr>
|
846
|
+
</table>
|
847
|
+
</div>
|
848
|
+
|
849
|
+
|
850
|
+
<span id=""></span>
|
851
|
+
<div class="method_details ">
|
852
|
+
<h3 class="signature " id="connection_health_log_level-instance_method">
|
853
|
+
|
854
|
+
#<strong>connection_health_log_level</strong> ⇒ <tt>String</tt> <span class="extras">(readonly)</span>
|
855
|
+
|
856
|
+
|
857
|
+
|
858
|
+
|
859
|
+
|
860
|
+
</h3><div class="docstring">
|
861
|
+
<div class="discussion">
|
862
|
+
|
863
|
+
<p>Returns Log level (default: ‘debug’).</p>
|
864
|
+
|
865
|
+
|
866
|
+
</div>
|
867
|
+
</div>
|
868
|
+
<div class="tags">
|
869
|
+
|
870
|
+
<p class="tag_title">Returns:</p>
|
871
|
+
<ul class="return">
|
872
|
+
|
873
|
+
<li>
|
874
|
+
|
875
|
+
|
876
|
+
<span class='type'>(<tt>String</tt>)</span>
|
877
|
+
|
878
|
+
|
879
|
+
|
880
|
+
—
|
881
|
+
<div class='inline'>
|
882
|
+
<p>Log level (default: ‘debug’)</p>
|
883
|
+
</div>
|
884
|
+
|
885
|
+
</li>
|
886
|
+
|
887
|
+
</ul>
|
888
|
+
|
889
|
+
</div><table class="source_code">
|
890
|
+
<tr>
|
891
|
+
<td>
|
892
|
+
<pre class="lines">
|
893
|
+
|
894
|
+
|
895
|
+
131</pre>
|
896
|
+
</td>
|
897
|
+
<td>
|
898
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 131</span>
|
899
|
+
|
900
|
+
<span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:connection_health_log_level</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>String</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>debug</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span></pre>
|
901
|
+
</td>
|
902
|
+
</tr>
|
903
|
+
</table>
|
904
|
+
</div>
|
905
|
+
|
906
|
+
|
907
|
+
<span id=""></span>
|
908
|
+
<div class="method_details ">
|
909
|
+
<h3 class="signature " id="connection_pressure_factors-instance_method">
|
910
|
+
|
911
|
+
#<strong>connection_pressure_factors</strong> ⇒ <tt>Hash</tt> <span class="extras">(readonly)</span>
|
912
|
+
|
913
|
+
|
914
|
+
|
915
|
+
|
916
|
+
|
917
|
+
</h3><div class="docstring">
|
918
|
+
<div class="discussion">
|
919
|
+
|
920
|
+
<p>Returns Pressure response factors by pressure level.</p>
|
921
|
+
|
922
|
+
|
923
|
+
</div>
|
924
|
+
</div>
|
925
|
+
<div class="tags">
|
926
|
+
|
927
|
+
<p class="tag_title">Returns:</p>
|
928
|
+
<ul class="return">
|
929
|
+
|
930
|
+
<li>
|
931
|
+
|
932
|
+
|
933
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
934
|
+
|
935
|
+
|
936
|
+
|
937
|
+
—
|
938
|
+
<div class='inline'>
|
939
|
+
<p>Pressure response factors by pressure level</p>
|
940
|
+
</div>
|
941
|
+
|
942
|
+
</li>
|
943
|
+
|
944
|
+
</ul>
|
945
|
+
|
946
|
+
</div><table class="source_code">
|
947
|
+
<tr>
|
948
|
+
<td>
|
949
|
+
<pre class="lines">
|
950
|
+
|
951
|
+
|
952
|
+
106
|
953
|
+
107
|
954
|
+
108
|
955
|
+
109
|
956
|
+
110
|
957
|
+
111
|
958
|
+
112
|
959
|
+
113</pre>
|
960
|
+
</td>
|
961
|
+
<td>
|
962
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 106</span>
|
963
|
+
|
964
|
+
<span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:connection_pressure_factors</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>Hash</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='id identifier rubyid_proc'>proc</span> <span class='lbrace'>{</span>
|
965
|
+
<span class='lbrace'>{</span>
|
966
|
+
<span class='label'>low:</span> <span class='float'>0.8</span><span class='comma'>,</span> <span class='comment'># Use 80% of available when pressure is low
|
967
|
+
</span> <span class='label'>moderate:</span> <span class='float'>0.6</span><span class='comma'>,</span> <span class='comment'># Use 60% of available when pressure is moderate
|
968
|
+
</span> <span class='label'>high:</span> <span class='float'>0.4</span><span class='comma'>,</span> <span class='comment'># Use 40% of available when pressure is high
|
969
|
+
</span> <span class='label'>critical:</span> <span class='float'>0.2</span> <span class='comment'># Use 20% of available when pressure is critical
|
970
|
+
</span> <span class='rbrace'>}</span>
|
971
|
+
<span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_freeze'>freeze</span><span class='rparen'>)</span></pre>
|
972
|
+
</td>
|
973
|
+
</tr>
|
974
|
+
</table>
|
975
|
+
</div>
|
976
|
+
|
977
|
+
|
978
|
+
<span id=""></span>
|
979
|
+
<div class="method_details ">
|
980
|
+
<h3 class="signature " id="health_assessment_cache_duration-instance_method">
|
981
|
+
|
982
|
+
#<strong>health_assessment_cache_duration</strong> ⇒ <tt>Integer</tt> <span class="extras">(readonly)</span>
|
983
|
+
|
984
|
+
|
985
|
+
|
986
|
+
|
987
|
+
|
988
|
+
</h3><div class="docstring">
|
989
|
+
<div class="discussion">
|
990
|
+
|
991
|
+
<p>Returns Cache duration in seconds (default: 30).</p>
|
992
|
+
|
993
|
+
|
994
|
+
</div>
|
995
|
+
</div>
|
996
|
+
<div class="tags">
|
997
|
+
|
998
|
+
<p class="tag_title">Returns:</p>
|
999
|
+
<ul class="return">
|
1000
|
+
|
1001
|
+
<li>
|
1002
|
+
|
1003
|
+
|
1004
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1005
|
+
|
1006
|
+
|
1007
|
+
|
1008
|
+
—
|
1009
|
+
<div class='inline'>
|
1010
|
+
<p>Cache duration in seconds (default: 30)</p>
|
1011
|
+
</div>
|
1012
|
+
|
1013
|
+
</li>
|
1014
|
+
|
1015
|
+
</ul>
|
1016
|
+
|
1017
|
+
</div><table class="source_code">
|
1018
|
+
<tr>
|
1019
|
+
<td>
|
1020
|
+
<pre class="lines">
|
1021
|
+
|
1022
|
+
|
1023
|
+
122</pre>
|
1024
|
+
</td>
|
1025
|
+
<td>
|
1026
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 122</span>
|
1027
|
+
|
1028
|
+
<span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:health_assessment_cache_duration</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>Integer</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='int'>30</span><span class='rparen'>)</span></pre>
|
1029
|
+
</td>
|
1030
|
+
</tr>
|
1031
|
+
</table>
|
1032
|
+
</div>
|
1033
|
+
|
1034
|
+
|
1035
|
+
<span id=""></span>
|
1036
|
+
<div class="method_details ">
|
1037
|
+
<h3 class="signature " id="max_batch_timeout_seconds-instance_method">
|
1038
|
+
|
1039
|
+
#<strong>max_batch_timeout_seconds</strong> ⇒ <tt>Integer</tt> <span class="extras">(readonly)</span>
|
1040
|
+
|
1041
|
+
|
1042
|
+
|
1043
|
+
|
1044
|
+
|
1045
|
+
</h3><div class="docstring">
|
1046
|
+
<div class="discussion">
|
1047
|
+
|
1048
|
+
<p>Returns Maximum timeout in seconds (default: 120).</p>
|
1049
|
+
|
1050
|
+
|
1051
|
+
</div>
|
1052
|
+
</div>
|
1053
|
+
<div class="tags">
|
1054
|
+
|
1055
|
+
<p class="tag_title">Returns:</p>
|
1056
|
+
<ul class="return">
|
1057
|
+
|
1058
|
+
<li>
|
1059
|
+
|
1060
|
+
|
1061
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1062
|
+
|
1063
|
+
|
1064
|
+
|
1065
|
+
—
|
1066
|
+
<div class='inline'>
|
1067
|
+
<p>Maximum timeout in seconds (default: 120)</p>
|
1068
|
+
</div>
|
1069
|
+
|
1070
|
+
</li>
|
1071
|
+
|
1072
|
+
</ul>
|
1073
|
+
|
1074
|
+
</div><table class="source_code">
|
1075
|
+
<tr>
|
1076
|
+
<td>
|
1077
|
+
<pre class="lines">
|
1078
|
+
|
1079
|
+
|
1080
|
+
96</pre>
|
1081
|
+
</td>
|
1082
|
+
<td>
|
1083
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 96</span>
|
1084
|
+
|
1085
|
+
<span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:max_batch_timeout_seconds</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>Integer</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='int'>120</span><span class='rparen'>)</span></pre>
|
1086
|
+
</td>
|
1087
|
+
</tr>
|
1088
|
+
</table>
|
1089
|
+
</div>
|
1090
|
+
|
1091
|
+
|
1092
|
+
<span id=""></span>
|
1093
|
+
<div class="method_details ">
|
1094
|
+
<h3 class="signature " id="max_concurrent_steps_limit-instance_method">
|
1095
|
+
|
1096
|
+
#<strong>max_concurrent_steps_limit</strong> ⇒ <tt>Integer</tt> <span class="extras">(readonly)</span>
|
1097
|
+
|
1098
|
+
|
1099
|
+
|
1100
|
+
|
1101
|
+
|
1102
|
+
</h3><div class="docstring">
|
1103
|
+
<div class="discussion">
|
1104
|
+
|
1105
|
+
<p>Returns Maximum concurrent steps limit (default: 12).</p>
|
1106
|
+
|
1107
|
+
|
1108
|
+
</div>
|
1109
|
+
</div>
|
1110
|
+
<div class="tags">
|
1111
|
+
|
1112
|
+
<p class="tag_title">Returns:</p>
|
1113
|
+
<ul class="return">
|
1114
|
+
|
1115
|
+
<li>
|
1116
|
+
|
1117
|
+
|
1118
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1119
|
+
|
1120
|
+
|
1121
|
+
|
1122
|
+
—
|
1123
|
+
<div class='inline'>
|
1124
|
+
<p>Maximum concurrent steps limit (default: 12)</p>
|
1125
|
+
</div>
|
1126
|
+
|
1127
|
+
</li>
|
1128
|
+
|
1129
|
+
</ul>
|
1130
|
+
|
1131
|
+
</div><table class="source_code">
|
1132
|
+
<tr>
|
1133
|
+
<td>
|
1134
|
+
<pre class="lines">
|
1135
|
+
|
1136
|
+
|
1137
|
+
60</pre>
|
1138
|
+
</td>
|
1139
|
+
<td>
|
1140
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 60</span>
|
1141
|
+
|
1142
|
+
<span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:max_concurrent_steps_limit</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>Integer</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='int'>12</span><span class='rparen'>)</span></pre>
|
1143
|
+
</td>
|
1144
|
+
</tr>
|
1145
|
+
</table>
|
1146
|
+
</div>
|
1147
|
+
|
1148
|
+
|
1149
|
+
<span id=""></span>
|
1150
|
+
<div class="method_details ">
|
1151
|
+
<h3 class="signature " id="min_concurrent_steps-instance_method">
|
1152
|
+
|
1153
|
+
#<strong>min_concurrent_steps</strong> ⇒ <tt>Integer</tt> <span class="extras">(readonly)</span>
|
1154
|
+
|
1155
|
+
|
1156
|
+
|
1157
|
+
|
1158
|
+
|
1159
|
+
</h3><div class="docstring">
|
1160
|
+
<div class="discussion">
|
1161
|
+
|
1162
|
+
<p>Returns Minimum concurrent steps (default: 3).</p>
|
1163
|
+
|
1164
|
+
|
1165
|
+
</div>
|
1166
|
+
</div>
|
1167
|
+
<div class="tags">
|
1168
|
+
|
1169
|
+
<p class="tag_title">Returns:</p>
|
1170
|
+
<ul class="return">
|
1171
|
+
|
1172
|
+
<li>
|
1173
|
+
|
1174
|
+
|
1175
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1176
|
+
|
1177
|
+
|
1178
|
+
|
1179
|
+
—
|
1180
|
+
<div class='inline'>
|
1181
|
+
<p>Minimum concurrent steps (default: 3)</p>
|
1182
|
+
</div>
|
1183
|
+
|
1184
|
+
</li>
|
1185
|
+
|
1186
|
+
</ul>
|
1187
|
+
|
1188
|
+
</div><table class="source_code">
|
1189
|
+
<tr>
|
1190
|
+
<td>
|
1191
|
+
<pre class="lines">
|
1192
|
+
|
1193
|
+
|
1194
|
+
50</pre>
|
1195
|
+
</td>
|
1196
|
+
<td>
|
1197
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 50</span>
|
1198
|
+
|
1199
|
+
<span class='id identifier rubyid_attribute'>attribute</span> <span class='symbol'>:min_concurrent_steps</span><span class='comma'>,</span> <span class='const'><span class='object_link'><a href="../Types.html" title="Tasker::Types (module)">Types</a></span></span><span class='op'>::</span><span class='const'>Integer</span><span class='period'>.</span><span class='id identifier rubyid_default'>default</span><span class='lparen'>(</span><span class='int'>3</span><span class='rparen'>)</span></pre>
|
1200
|
+
</td>
|
1201
|
+
</tr>
|
1202
|
+
</table>
|
1203
|
+
</div>
|
1204
|
+
|
1205
|
+
</div>
|
1206
|
+
|
1207
|
+
|
1208
|
+
<div id="instance_method_details" class="method_details_list">
|
1209
|
+
<h2>Instance Method Details</h2>
|
1210
|
+
|
1211
|
+
|
1212
|
+
<div class="method_details first">
|
1213
|
+
<h3 class="signature first" id="calculate_batch_timeout-instance_method">
|
1214
|
+
|
1215
|
+
#<strong>calculate_batch_timeout</strong>(batch_size) ⇒ <tt>Integer</tt>
|
1216
|
+
|
1217
|
+
|
1218
|
+
|
1219
|
+
|
1220
|
+
|
1221
|
+
</h3><div class="docstring">
|
1222
|
+
<div class="discussion">
|
1223
|
+
|
1224
|
+
<p>Calculate batch timeout for a given batch size</p>
|
1225
|
+
|
1226
|
+
|
1227
|
+
</div>
|
1228
|
+
</div>
|
1229
|
+
<div class="tags">
|
1230
|
+
<p class="tag_title">Parameters:</p>
|
1231
|
+
<ul class="param">
|
1232
|
+
|
1233
|
+
<li>
|
1234
|
+
|
1235
|
+
<span class='name'>batch_size</span>
|
1236
|
+
|
1237
|
+
|
1238
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1239
|
+
|
1240
|
+
|
1241
|
+
|
1242
|
+
—
|
1243
|
+
<div class='inline'>
|
1244
|
+
<p>Number of steps in the batch</p>
|
1245
|
+
</div>
|
1246
|
+
|
1247
|
+
</li>
|
1248
|
+
|
1249
|
+
</ul>
|
1250
|
+
|
1251
|
+
<p class="tag_title">Returns:</p>
|
1252
|
+
<ul class="return">
|
1253
|
+
|
1254
|
+
<li>
|
1255
|
+
|
1256
|
+
|
1257
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1258
|
+
|
1259
|
+
|
1260
|
+
|
1261
|
+
—
|
1262
|
+
<div class='inline'>
|
1263
|
+
<p>Calculated timeout in seconds</p>
|
1264
|
+
</div>
|
1265
|
+
|
1266
|
+
</li>
|
1267
|
+
|
1268
|
+
</ul>
|
1269
|
+
|
1270
|
+
</div><table class="source_code">
|
1271
|
+
<tr>
|
1272
|
+
<td>
|
1273
|
+
<pre class="lines">
|
1274
|
+
|
1275
|
+
|
1276
|
+
181
|
1277
|
+
182
|
1278
|
+
183
|
1279
|
+
184</pre>
|
1280
|
+
</td>
|
1281
|
+
<td>
|
1282
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 181</span>
|
1283
|
+
|
1284
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_calculate_batch_timeout'>calculate_batch_timeout</span><span class='lparen'>(</span><span class='id identifier rubyid_batch_size'>batch_size</span><span class='rparen'>)</span>
|
1285
|
+
<span class='id identifier rubyid_calculated_timeout'>calculated_timeout</span> <span class='op'>=</span> <span class='id identifier rubyid_batch_timeout_base_seconds'>batch_timeout_base_seconds</span> <span class='op'>+</span> <span class='lparen'>(</span><span class='id identifier rubyid_batch_size'>batch_size</span> <span class='op'>*</span> <span class='id identifier rubyid_batch_timeout_per_step_seconds'>batch_timeout_per_step_seconds</span><span class='rparen'>)</span>
|
1286
|
+
<span class='lbracket'>[</span><span class='id identifier rubyid_calculated_timeout'>calculated_timeout</span><span class='comma'>,</span> <span class='id identifier rubyid_max_batch_timeout_seconds'>max_batch_timeout_seconds</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id identifier rubyid_min'>min</span>
|
1287
|
+
<span class='kw'>end</span></pre>
|
1288
|
+
</td>
|
1289
|
+
</tr>
|
1290
|
+
</table>
|
1291
|
+
</div>
|
1292
|
+
|
1293
|
+
<div class="method_details ">
|
1294
|
+
<h3 class="signature " id="future_cleanup_wait_seconds-instance_method">
|
1295
|
+
|
1296
|
+
#<strong>future_cleanup_wait_seconds</strong> ⇒ <tt>Integer</tt>
|
1297
|
+
|
1298
|
+
|
1299
|
+
|
1300
|
+
|
1301
|
+
|
1302
|
+
</h3><div class="docstring">
|
1303
|
+
<div class="discussion">
|
1304
|
+
|
1305
|
+
<p>Future cleanup wait time</p>
|
1306
|
+
|
1307
|
+
<p>Time to wait for executing futures during cleanup. Based on Ruby Concurrent::Future characteristics - 1 second is optimal for most Ruby applications and provides good balance of responsiveness vs resource cleanup.</p>
|
1308
|
+
|
1309
|
+
|
1310
|
+
</div>
|
1311
|
+
</div>
|
1312
|
+
<div class="tags">
|
1313
|
+
|
1314
|
+
<p class="tag_title">Returns:</p>
|
1315
|
+
<ul class="return">
|
1316
|
+
|
1317
|
+
<li>
|
1318
|
+
|
1319
|
+
|
1320
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1321
|
+
|
1322
|
+
|
1323
|
+
|
1324
|
+
—
|
1325
|
+
<div class='inline'>
|
1326
|
+
<p>Wait time in seconds</p>
|
1327
|
+
</div>
|
1328
|
+
|
1329
|
+
</li>
|
1330
|
+
|
1331
|
+
</ul>
|
1332
|
+
|
1333
|
+
</div><table class="source_code">
|
1334
|
+
<tr>
|
1335
|
+
<td>
|
1336
|
+
<pre class="lines">
|
1337
|
+
|
1338
|
+
|
1339
|
+
147
|
1340
|
+
148
|
1341
|
+
149</pre>
|
1342
|
+
</td>
|
1343
|
+
<td>
|
1344
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 147</span>
|
1345
|
+
|
1346
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_future_cleanup_wait_seconds'>future_cleanup_wait_seconds</span>
|
1347
|
+
<span class='int'>1</span>
|
1348
|
+
<span class='kw'>end</span></pre>
|
1349
|
+
</td>
|
1350
|
+
</tr>
|
1351
|
+
</table>
|
1352
|
+
</div>
|
1353
|
+
|
1354
|
+
<div class="method_details ">
|
1355
|
+
<h3 class="signature " id="gc_trigger_batch_size_threshold-instance_method">
|
1356
|
+
|
1357
|
+
#<strong>gc_trigger_batch_size_threshold</strong> ⇒ <tt>Integer</tt>
|
1358
|
+
|
1359
|
+
|
1360
|
+
|
1361
|
+
|
1362
|
+
|
1363
|
+
</h3><div class="docstring">
|
1364
|
+
<div class="discussion">
|
1365
|
+
|
1366
|
+
<p>GC trigger batch size threshold</p>
|
1367
|
+
|
1368
|
+
<p>Batch size that triggers intelligent garbage collection. Based on Ruby memory management patterns - 6 concurrent operations is typically where memory pressure becomes noticeable in Ruby.</p>
|
1369
|
+
|
1370
|
+
|
1371
|
+
</div>
|
1372
|
+
</div>
|
1373
|
+
<div class="tags">
|
1374
|
+
|
1375
|
+
<p class="tag_title">Returns:</p>
|
1376
|
+
<ul class="return">
|
1377
|
+
|
1378
|
+
<li>
|
1379
|
+
|
1380
|
+
|
1381
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1382
|
+
|
1383
|
+
|
1384
|
+
|
1385
|
+
—
|
1386
|
+
<div class='inline'>
|
1387
|
+
<p>Batch size threshold</p>
|
1388
|
+
</div>
|
1389
|
+
|
1390
|
+
</li>
|
1391
|
+
|
1392
|
+
</ul>
|
1393
|
+
|
1394
|
+
</div><table class="source_code">
|
1395
|
+
<tr>
|
1396
|
+
<td>
|
1397
|
+
<pre class="lines">
|
1398
|
+
|
1399
|
+
|
1400
|
+
158
|
1401
|
+
159
|
1402
|
+
160</pre>
|
1403
|
+
</td>
|
1404
|
+
<td>
|
1405
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 158</span>
|
1406
|
+
|
1407
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_gc_trigger_batch_size_threshold'>gc_trigger_batch_size_threshold</span>
|
1408
|
+
<span class='int'>6</span>
|
1409
|
+
<span class='kw'>end</span></pre>
|
1410
|
+
</td>
|
1411
|
+
</tr>
|
1412
|
+
</table>
|
1413
|
+
</div>
|
1414
|
+
|
1415
|
+
<div class="method_details ">
|
1416
|
+
<h3 class="signature " id="gc_trigger_duration_threshold-instance_method">
|
1417
|
+
|
1418
|
+
#<strong>gc_trigger_duration_threshold</strong> ⇒ <tt>Integer</tt>
|
1419
|
+
|
1420
|
+
|
1421
|
+
|
1422
|
+
|
1423
|
+
|
1424
|
+
</h3><div class="docstring">
|
1425
|
+
<div class="discussion">
|
1426
|
+
|
1427
|
+
<p>GC trigger duration threshold</p>
|
1428
|
+
|
1429
|
+
<p>Batch duration that triggers intelligent garbage collection. Based on Ruby GC timing characteristics - 30 seconds is typically when Ruby benefits from explicit GC triggering.</p>
|
1430
|
+
|
1431
|
+
|
1432
|
+
</div>
|
1433
|
+
</div>
|
1434
|
+
<div class="tags">
|
1435
|
+
|
1436
|
+
<p class="tag_title">Returns:</p>
|
1437
|
+
<ul class="return">
|
1438
|
+
|
1439
|
+
<li>
|
1440
|
+
|
1441
|
+
|
1442
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1443
|
+
|
1444
|
+
|
1445
|
+
|
1446
|
+
—
|
1447
|
+
<div class='inline'>
|
1448
|
+
<p>Duration threshold in seconds</p>
|
1449
|
+
</div>
|
1450
|
+
|
1451
|
+
</li>
|
1452
|
+
|
1453
|
+
</ul>
|
1454
|
+
|
1455
|
+
</div><table class="source_code">
|
1456
|
+
<tr>
|
1457
|
+
<td>
|
1458
|
+
<pre class="lines">
|
1459
|
+
|
1460
|
+
|
1461
|
+
169
|
1462
|
+
170
|
1463
|
+
171</pre>
|
1464
|
+
</td>
|
1465
|
+
<td>
|
1466
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 169</span>
|
1467
|
+
|
1468
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_gc_trigger_duration_threshold'>gc_trigger_duration_threshold</span>
|
1469
|
+
<span class='int'>30</span>
|
1470
|
+
<span class='kw'>end</span></pre>
|
1471
|
+
</td>
|
1472
|
+
</tr>
|
1473
|
+
</table>
|
1474
|
+
</div>
|
1475
|
+
|
1476
|
+
<div class="method_details ">
|
1477
|
+
<h3 class="signature " id="should_trigger_gc?-instance_method">
|
1478
|
+
|
1479
|
+
#<strong>should_trigger_gc?</strong>(batch_size, batch_duration) ⇒ <tt>Boolean</tt>
|
1480
|
+
|
1481
|
+
|
1482
|
+
|
1483
|
+
|
1484
|
+
|
1485
|
+
</h3><div class="docstring">
|
1486
|
+
<div class="discussion">
|
1487
|
+
|
1488
|
+
<p>Check if batch should trigger garbage collection</p>
|
1489
|
+
|
1490
|
+
|
1491
|
+
</div>
|
1492
|
+
</div>
|
1493
|
+
<div class="tags">
|
1494
|
+
<p class="tag_title">Parameters:</p>
|
1495
|
+
<ul class="param">
|
1496
|
+
|
1497
|
+
<li>
|
1498
|
+
|
1499
|
+
<span class='name'>batch_size</span>
|
1500
|
+
|
1501
|
+
|
1502
|
+
<span class='type'>(<tt>Integer</tt>)</span>
|
1503
|
+
|
1504
|
+
|
1505
|
+
|
1506
|
+
—
|
1507
|
+
<div class='inline'>
|
1508
|
+
<p>Size of the batch</p>
|
1509
|
+
</div>
|
1510
|
+
|
1511
|
+
</li>
|
1512
|
+
|
1513
|
+
<li>
|
1514
|
+
|
1515
|
+
<span class='name'>batch_duration</span>
|
1516
|
+
|
1517
|
+
|
1518
|
+
<span class='type'>(<tt>Float</tt>)</span>
|
1519
|
+
|
1520
|
+
|
1521
|
+
|
1522
|
+
—
|
1523
|
+
<div class='inline'>
|
1524
|
+
<p>Duration of batch execution in seconds</p>
|
1525
|
+
</div>
|
1526
|
+
|
1527
|
+
</li>
|
1528
|
+
|
1529
|
+
</ul>
|
1530
|
+
|
1531
|
+
<p class="tag_title">Returns:</p>
|
1532
|
+
<ul class="return">
|
1533
|
+
|
1534
|
+
<li>
|
1535
|
+
|
1536
|
+
|
1537
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1538
|
+
|
1539
|
+
|
1540
|
+
|
1541
|
+
—
|
1542
|
+
<div class='inline'>
|
1543
|
+
<p>Whether to trigger GC</p>
|
1544
|
+
</div>
|
1545
|
+
|
1546
|
+
</li>
|
1547
|
+
|
1548
|
+
</ul>
|
1549
|
+
|
1550
|
+
</div><table class="source_code">
|
1551
|
+
<tr>
|
1552
|
+
<td>
|
1553
|
+
<pre class="lines">
|
1554
|
+
|
1555
|
+
|
1556
|
+
191
|
1557
|
+
192
|
1558
|
+
193
|
1559
|
+
194</pre>
|
1560
|
+
</td>
|
1561
|
+
<td>
|
1562
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 191</span>
|
1563
|
+
|
1564
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_should_trigger_gc?'>should_trigger_gc?</span><span class='lparen'>(</span><span class='id identifier rubyid_batch_size'>batch_size</span><span class='comma'>,</span> <span class='id identifier rubyid_batch_duration'>batch_duration</span><span class='rparen'>)</span>
|
1565
|
+
<span class='id identifier rubyid_batch_size'>batch_size</span> <span class='op'>>=</span> <span class='id identifier rubyid_gc_trigger_batch_size_threshold'>gc_trigger_batch_size_threshold</span> <span class='op'>||</span>
|
1566
|
+
<span class='id identifier rubyid_batch_duration'>batch_duration</span> <span class='op'>>=</span> <span class='id identifier rubyid_gc_trigger_duration_threshold'>gc_trigger_duration_threshold</span>
|
1567
|
+
<span class='kw'>end</span></pre>
|
1568
|
+
</td>
|
1569
|
+
</tr>
|
1570
|
+
</table>
|
1571
|
+
</div>
|
1572
|
+
|
1573
|
+
<div class="method_details ">
|
1574
|
+
<h3 class="signature " id="validate!-instance_method">
|
1575
|
+
|
1576
|
+
#<strong>validate!</strong> ⇒ <tt>Boolean</tt>
|
1577
|
+
|
1578
|
+
|
1579
|
+
|
1580
|
+
|
1581
|
+
|
1582
|
+
</h3><div class="docstring">
|
1583
|
+
<div class="discussion">
|
1584
|
+
|
1585
|
+
<p>Comprehensive validation</p>
|
1586
|
+
|
1587
|
+
<p>rubocop:disable Naming/PredicateMethod</p>
|
1588
|
+
|
1589
|
+
|
1590
|
+
</div>
|
1591
|
+
</div>
|
1592
|
+
<div class="tags">
|
1593
|
+
|
1594
|
+
<p class="tag_title">Returns:</p>
|
1595
|
+
<ul class="return">
|
1596
|
+
|
1597
|
+
<li>
|
1598
|
+
|
1599
|
+
|
1600
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1601
|
+
|
1602
|
+
|
1603
|
+
|
1604
|
+
—
|
1605
|
+
<div class='inline'>
|
1606
|
+
<p>True if valid, raises exception if invalid</p>
|
1607
|
+
</div>
|
1608
|
+
|
1609
|
+
</li>
|
1610
|
+
|
1611
|
+
</ul>
|
1612
|
+
<p class="tag_title">Raises:</p>
|
1613
|
+
<ul class="raise">
|
1614
|
+
|
1615
|
+
<li>
|
1616
|
+
|
1617
|
+
|
1618
|
+
<span class='type'>(<tt>Dry::Struct::Error</tt>)</span>
|
1619
|
+
|
1620
|
+
|
1621
|
+
|
1622
|
+
—
|
1623
|
+
<div class='inline'>
|
1624
|
+
<p>If validation fails</p>
|
1625
|
+
</div>
|
1626
|
+
|
1627
|
+
</li>
|
1628
|
+
|
1629
|
+
</ul>
|
1630
|
+
|
1631
|
+
</div><table class="source_code">
|
1632
|
+
<tr>
|
1633
|
+
<td>
|
1634
|
+
<pre class="lines">
|
1635
|
+
|
1636
|
+
|
1637
|
+
279
|
1638
|
+
280
|
1639
|
+
281
|
1640
|
+
282
|
1641
|
+
283
|
1642
|
+
284
|
1643
|
+
285</pre>
|
1644
|
+
</td>
|
1645
|
+
<td>
|
1646
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 279</span>
|
1647
|
+
|
1648
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_validate!'>validate!</span>
|
1649
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'>=</span> <span class='id identifier rubyid_validate_concurrency_bounds'>validate_concurrency_bounds</span> <span class='op'>+</span> <span class='id identifier rubyid_validate_timeout_configuration'>validate_timeout_configuration</span> <span class='op'>+</span> <span class='id identifier rubyid_validate_connection_configuration'>validate_connection_configuration</span>
|
1650
|
+
|
1651
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Dry</span><span class='op'>::</span><span class='const'>Struct</span><span class='op'>::</span><span class='const'>Error</span><span class='comma'>,</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>ExecutionConfig validation failed: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_errors'>errors</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>, </span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span> <span class='kw'>unless</span> <span class='id identifier rubyid_errors'>errors</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
|
1652
|
+
|
1653
|
+
<span class='kw'>true</span>
|
1654
|
+
<span class='kw'>end</span></pre>
|
1655
|
+
</td>
|
1656
|
+
</tr>
|
1657
|
+
</table>
|
1658
|
+
</div>
|
1659
|
+
|
1660
|
+
<div class="method_details ">
|
1661
|
+
<h3 class="signature " id="validate_concurrency_bounds-instance_method">
|
1662
|
+
|
1663
|
+
#<strong>validate_concurrency_bounds</strong> ⇒ <tt>Array<String></tt>
|
1664
|
+
|
1665
|
+
|
1666
|
+
|
1667
|
+
|
1668
|
+
|
1669
|
+
</h3><div class="docstring">
|
1670
|
+
<div class="discussion">
|
1671
|
+
|
1672
|
+
<p>Validate concurrency bounds</p>
|
1673
|
+
|
1674
|
+
<p>Ensures min <= max and both are positive</p>
|
1675
|
+
|
1676
|
+
|
1677
|
+
</div>
|
1678
|
+
</div>
|
1679
|
+
<div class="tags">
|
1680
|
+
|
1681
|
+
<p class="tag_title">Returns:</p>
|
1682
|
+
<ul class="return">
|
1683
|
+
|
1684
|
+
<li>
|
1685
|
+
|
1686
|
+
|
1687
|
+
<span class='type'>(<tt>Array<String></tt>)</span>
|
1688
|
+
|
1689
|
+
|
1690
|
+
|
1691
|
+
—
|
1692
|
+
<div class='inline'>
|
1693
|
+
<p>Validation errors (empty if valid)</p>
|
1694
|
+
</div>
|
1695
|
+
|
1696
|
+
</li>
|
1697
|
+
|
1698
|
+
</ul>
|
1699
|
+
|
1700
|
+
</div><table class="source_code">
|
1701
|
+
<tr>
|
1702
|
+
<td>
|
1703
|
+
<pre class="lines">
|
1704
|
+
|
1705
|
+
|
1706
|
+
200
|
1707
|
+
201
|
1708
|
+
202
|
1709
|
+
203
|
1710
|
+
204
|
1711
|
+
205
|
1712
|
+
206
|
1713
|
+
207
|
1714
|
+
208
|
1715
|
+
209
|
1716
|
+
210
|
1717
|
+
211
|
1718
|
+
212
|
1719
|
+
213
|
1720
|
+
214
|
1721
|
+
215</pre>
|
1722
|
+
</td>
|
1723
|
+
<td>
|
1724
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 200</span>
|
1725
|
+
|
1726
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_validate_concurrency_bounds'>validate_concurrency_bounds</span>
|
1727
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
1728
|
+
|
1729
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>min_concurrent_steps must be positive (got: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_min_concurrent_steps'>min_concurrent_steps</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>"</span></span> <span class='kw'>if</span> <span class='id identifier rubyid_min_concurrent_steps'>min_concurrent_steps</span> <span class='op'><=</span> <span class='int'>0</span>
|
1730
|
+
|
1731
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_max_concurrent_steps_limit'>max_concurrent_steps_limit</span> <span class='op'><=</span> <span class='int'>0</span>
|
1732
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>max_concurrent_steps_limit must be positive (got: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_max_concurrent_steps_limit'>max_concurrent_steps_limit</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>"</span></span>
|
1733
|
+
<span class='kw'>end</span>
|
1734
|
+
|
1735
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_min_concurrent_steps'>min_concurrent_steps</span> <span class='op'>></span> <span class='id identifier rubyid_max_concurrent_steps_limit'>max_concurrent_steps_limit</span>
|
1736
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>min_concurrent_steps (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_min_concurrent_steps'>min_concurrent_steps</span><span class='embexpr_end'>}</span><span class='tstring_content'>) cannot exceed </span><span class='tstring_end'>"</span></span> \
|
1737
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>max_concurrent_steps_limit (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_max_concurrent_steps_limit'>max_concurrent_steps_limit</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>"</span></span>
|
1738
|
+
<span class='kw'>end</span>
|
1739
|
+
|
1740
|
+
<span class='id identifier rubyid_errors'>errors</span>
|
1741
|
+
<span class='kw'>end</span></pre>
|
1742
|
+
</td>
|
1743
|
+
</tr>
|
1744
|
+
</table>
|
1745
|
+
</div>
|
1746
|
+
|
1747
|
+
<div class="method_details ">
|
1748
|
+
<h3 class="signature " id="validate_connection_configuration-instance_method">
|
1749
|
+
|
1750
|
+
#<strong>validate_connection_configuration</strong> ⇒ <tt>Array<String></tt>
|
1751
|
+
|
1752
|
+
|
1753
|
+
|
1754
|
+
|
1755
|
+
|
1756
|
+
</h3><div class="docstring">
|
1757
|
+
<div class="discussion">
|
1758
|
+
|
1759
|
+
<p>Validate connection configuration</p>
|
1760
|
+
|
1761
|
+
<p>Ensures connection pressure factors and health settings are valid</p>
|
1762
|
+
|
1763
|
+
|
1764
|
+
</div>
|
1765
|
+
</div>
|
1766
|
+
<div class="tags">
|
1767
|
+
|
1768
|
+
<p class="tag_title">Returns:</p>
|
1769
|
+
<ul class="return">
|
1770
|
+
|
1771
|
+
<li>
|
1772
|
+
|
1773
|
+
|
1774
|
+
<span class='type'>(<tt>Array<String></tt>)</span>
|
1775
|
+
|
1776
|
+
|
1777
|
+
|
1778
|
+
—
|
1779
|
+
<div class='inline'>
|
1780
|
+
<p>Validation errors (empty if valid)</p>
|
1781
|
+
</div>
|
1782
|
+
|
1783
|
+
</li>
|
1784
|
+
|
1785
|
+
</ul>
|
1786
|
+
|
1787
|
+
</div><table class="source_code">
|
1788
|
+
<tr>
|
1789
|
+
<td>
|
1790
|
+
<pre class="lines">
|
1791
|
+
|
1792
|
+
|
1793
|
+
244
|
1794
|
+
245
|
1795
|
+
246
|
1796
|
+
247
|
1797
|
+
248
|
1798
|
+
249
|
1799
|
+
250
|
1800
|
+
251
|
1801
|
+
252
|
1802
|
+
253
|
1803
|
+
254
|
1804
|
+
255
|
1805
|
+
256
|
1806
|
+
257
|
1807
|
+
258
|
1808
|
+
259
|
1809
|
+
260
|
1810
|
+
261
|
1811
|
+
262
|
1812
|
+
263
|
1813
|
+
264
|
1814
|
+
265
|
1815
|
+
266
|
1816
|
+
267
|
1817
|
+
268
|
1818
|
+
269
|
1819
|
+
270
|
1820
|
+
271
|
1821
|
+
272</pre>
|
1822
|
+
</td>
|
1823
|
+
<td>
|
1824
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 244</span>
|
1825
|
+
|
1826
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_validate_connection_configuration'>validate_connection_configuration</span>
|
1827
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
1828
|
+
|
1829
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_health_assessment_cache_duration'>health_assessment_cache_duration</span> <span class='op'><=</span> <span class='int'>0</span>
|
1830
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>health_assessment_cache_duration must be positive (got: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_health_assessment_cache_duration'>health_assessment_cache_duration</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>"</span></span>
|
1831
|
+
<span class='kw'>end</span>
|
1832
|
+
|
1833
|
+
<span class='comment'># Validate connection pressure factors
|
1834
|
+
</span> <span class='id identifier rubyid_required_pressure_levels'>required_pressure_levels</span> <span class='op'>=</span> <span class='qsymbols_beg'>%i[</span><span class='tstring_content'>low</span><span class='words_sep'> </span><span class='tstring_content'>moderate</span><span class='words_sep'> </span><span class='tstring_content'>high</span><span class='words_sep'> </span><span class='tstring_content'>critical</span><span class='tstring_end'>]</span></span>
|
1835
|
+
<span class='id identifier rubyid_missing_levels'>missing_levels</span> <span class='op'>=</span> <span class='id identifier rubyid_required_pressure_levels'>required_pressure_levels</span> <span class='op'>-</span> <span class='id identifier rubyid_connection_pressure_factors'>connection_pressure_factors</span><span class='period'>.</span><span class='id identifier rubyid_keys'>keys</span>
|
1836
|
+
<span class='kw'>unless</span> <span class='id identifier rubyid_missing_levels'>missing_levels</span><span class='period'>.</span><span class='id identifier rubyid_empty?'>empty?</span>
|
1837
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>connection_pressure_factors missing required levels: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_missing_levels'>missing_levels</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>, </span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_end'>"</span></span>
|
1838
|
+
<span class='kw'>end</span>
|
1839
|
+
|
1840
|
+
<span class='id identifier rubyid_connection_pressure_factors'>connection_pressure_factors</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_level'>level</span><span class='comma'>,</span> <span class='id identifier rubyid_factor'>factor</span><span class='op'>|</span>
|
1841
|
+
<span class='kw'>unless</span> <span class='id identifier rubyid_factor'>factor</span><span class='period'>.</span><span class='id identifier rubyid_is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Numeric</span><span class='rparen'>)</span> <span class='op'>&&</span> <span class='id identifier rubyid_factor'>factor</span> <span class='op'>>=</span> <span class='float'>0.0</span> <span class='op'>&&</span> <span class='id identifier rubyid_factor'>factor</span> <span class='op'><=</span> <span class='float'>1.0</span>
|
1842
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>connection_pressure_factors[</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_level'>level</span><span class='embexpr_end'>}</span><span class='tstring_content'>] must be between 0.0 and 1.0 (got: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_factor'>factor</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>"</span></span>
|
1843
|
+
<span class='kw'>end</span>
|
1844
|
+
<span class='kw'>end</span>
|
1845
|
+
|
1846
|
+
<span class='comment'># Validate log level
|
1847
|
+
</span> <span class='id identifier rubyid_valid_log_levels'>valid_log_levels</span> <span class='op'>=</span> <span class='qwords_beg'>%w[</span><span class='tstring_content'>debug</span><span class='words_sep'> </span><span class='tstring_content'>info</span><span class='words_sep'> </span><span class='tstring_content'>warn</span><span class='words_sep'> </span><span class='tstring_content'>error</span><span class='words_sep'> </span><span class='tstring_content'>fatal</span><span class='tstring_end'>]</span></span>
|
1848
|
+
<span class='kw'>unless</span> <span class='id identifier rubyid_valid_log_levels'>valid_log_levels</span><span class='period'>.</span><span class='id identifier rubyid_include?'>include?</span><span class='lparen'>(</span><span class='id identifier rubyid_connection_health_log_level'>connection_health_log_level</span><span class='rparen'>)</span>
|
1849
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>connection_health_log_level must be one of: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_valid_log_levels'>valid_log_levels</span><span class='period'>.</span><span class='id identifier rubyid_join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>, </span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='embexpr_end'>}</span><span class='tstring_content'> </span><span class='tstring_end'>"</span></span> \
|
1850
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>(got: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_connection_health_log_level'>connection_health_log_level</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>"</span></span>
|
1851
|
+
<span class='kw'>end</span>
|
1852
|
+
|
1853
|
+
<span class='id identifier rubyid_errors'>errors</span>
|
1854
|
+
<span class='kw'>end</span></pre>
|
1855
|
+
</td>
|
1856
|
+
</tr>
|
1857
|
+
</table>
|
1858
|
+
</div>
|
1859
|
+
|
1860
|
+
<div class="method_details ">
|
1861
|
+
<h3 class="signature " id="validate_timeout_configuration-instance_method">
|
1862
|
+
|
1863
|
+
#<strong>validate_timeout_configuration</strong> ⇒ <tt>Array<String></tt>
|
1864
|
+
|
1865
|
+
|
1866
|
+
|
1867
|
+
|
1868
|
+
|
1869
|
+
</h3><div class="docstring">
|
1870
|
+
<div class="discussion">
|
1871
|
+
|
1872
|
+
<p>Validate timeout configuration</p>
|
1873
|
+
|
1874
|
+
<p>Ensures timeouts are positive and logical</p>
|
1875
|
+
|
1876
|
+
|
1877
|
+
</div>
|
1878
|
+
</div>
|
1879
|
+
<div class="tags">
|
1880
|
+
|
1881
|
+
<p class="tag_title">Returns:</p>
|
1882
|
+
<ul class="return">
|
1883
|
+
|
1884
|
+
<li>
|
1885
|
+
|
1886
|
+
|
1887
|
+
<span class='type'>(<tt>Array<String></tt>)</span>
|
1888
|
+
|
1889
|
+
|
1890
|
+
|
1891
|
+
—
|
1892
|
+
<div class='inline'>
|
1893
|
+
<p>Validation errors (empty if valid)</p>
|
1894
|
+
</div>
|
1895
|
+
|
1896
|
+
</li>
|
1897
|
+
|
1898
|
+
</ul>
|
1899
|
+
|
1900
|
+
</div><table class="source_code">
|
1901
|
+
<tr>
|
1902
|
+
<td>
|
1903
|
+
<pre class="lines">
|
1904
|
+
|
1905
|
+
|
1906
|
+
221
|
1907
|
+
222
|
1908
|
+
223
|
1909
|
+
224
|
1910
|
+
225
|
1911
|
+
226
|
1912
|
+
227
|
1913
|
+
228
|
1914
|
+
229
|
1915
|
+
230
|
1916
|
+
231
|
1917
|
+
232
|
1918
|
+
233
|
1919
|
+
234
|
1920
|
+
235
|
1921
|
+
236
|
1922
|
+
237
|
1923
|
+
238</pre>
|
1924
|
+
</td>
|
1925
|
+
<td>
|
1926
|
+
<pre class="code"><span class="info file"># File 'lib/tasker/types/execution_config.rb', line 221</span>
|
1927
|
+
|
1928
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_validate_timeout_configuration'>validate_timeout_configuration</span>
|
1929
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
1930
|
+
|
1931
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_batch_timeout_base_seconds'>batch_timeout_base_seconds</span> <span class='op'><=</span> <span class='int'>0</span>
|
1932
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>batch_timeout_base_seconds must be positive (got: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_batch_timeout_base_seconds'>batch_timeout_base_seconds</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>"</span></span>
|
1933
|
+
<span class='kw'>end</span>
|
1934
|
+
|
1935
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_batch_timeout_per_step_seconds'>batch_timeout_per_step_seconds</span> <span class='op'><=</span> <span class='int'>0</span>
|
1936
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>batch_timeout_per_step_seconds must be positive (got: </span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_batch_timeout_per_step_seconds'>batch_timeout_per_step_seconds</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>"</span></span>
|
1937
|
+
<span class='kw'>end</span>
|
1938
|
+
|
1939
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_max_batch_timeout_seconds'>max_batch_timeout_seconds</span> <span class='op'><=</span> <span class='id identifier rubyid_batch_timeout_base_seconds'>batch_timeout_base_seconds</span>
|
1940
|
+
<span class='id identifier rubyid_errors'>errors</span> <span class='op'><<</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>max_batch_timeout_seconds (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_max_batch_timeout_seconds'>max_batch_timeout_seconds</span><span class='embexpr_end'>}</span><span class='tstring_content'>) must be greater than </span><span class='tstring_end'>"</span></span> \
|
1941
|
+
<span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>batch_timeout_base_seconds (</span><span class='embexpr_beg'>#{</span><span class='id identifier rubyid_batch_timeout_base_seconds'>batch_timeout_base_seconds</span><span class='embexpr_end'>}</span><span class='tstring_content'>)</span><span class='tstring_end'>"</span></span>
|
1942
|
+
<span class='kw'>end</span>
|
1943
|
+
|
1944
|
+
<span class='id identifier rubyid_errors'>errors</span>
|
1945
|
+
<span class='kw'>end</span></pre>
|
1946
|
+
</td>
|
1947
|
+
</tr>
|
1948
|
+
</table>
|
1949
|
+
</div>
|
1950
|
+
|
1951
|
+
</div>
|
1952
|
+
|
1953
|
+
</div>
|
1954
|
+
|
1955
|
+
<div id="footer">
|
1956
|
+
Generated on Tue Jul 1 16:47:38 2025 by
|
1957
|
+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
1958
|
+
0.9.37 (ruby-3.2.4).
|
1959
|
+
</div>
|
1960
|
+
|
1961
|
+
</div>
|
1962
|
+
</body>
|
1963
|
+
</html>
|