Skip to content

Instantly share code, notes, and snippets.

@sawmonaco
Created February 14, 2023 19:34
Show Gist options
  • Save sawmonaco/72b2f0161a5f0559cc4692b10bc4d0cb to your computer and use it in GitHub Desktop.
Save sawmonaco/72b2f0161a5f0559cc4692b10bc4d0cb to your computer and use it in GitHub Desktop.
from conductor.client.http.models import Task, TaskResult
from conductor.client.http.models.task_result_status import TaskResultStatus
from conductor.client.automator.task_handler import TaskHandler
from conductor.client.worker.worker import Worker
import random
import time
from conductor.client.configuration.configuration import Configuration
configuration = Configuration(
server_api_url='https://conductor.sg.stg.locusdev.net/api',
debug=True
)
def execute(task: Task) -> TaskResult:
task_result = TaskResult(
task_id=task.task_id,
workflow_instance_id=task.workflow_instance_id,
worker_id='your_custom_id'
)
time_to_sleep_ms = float(random.randint(100, 3000))
time.sleep(time_to_sleep_ms/1000)
task_result.add_output_data('worker_style', 'function')
task_result.status = TaskResultStatus.COMPLETED
return task_result
workers = [
Worker(
task_definition_name='dynamic_sleep_task',
execute_function=execute,
poll_interval=1,
) for _ in range(10)
]
if __name__ == '__main__':
with TaskHandler(workers, configuration) as task_handler:
task_handler.start_processes()
task_handler.join_processes()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment