Class: Conductor::Client::SchedulerClient

Inherits:
Object
  • Object
show all
Defined in:
lib/conductor/client/scheduler_client.rb

Overview

SchedulerClient - High-level client for workflow schedule operations

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(configuration = nil) ⇒ SchedulerClient

Initialize SchedulerClient

Parameters:

  • configuration (Configuration) (defaults to: nil)

    Optional configuration



15
16
17
18
19
# File 'lib/conductor/client/scheduler_client.rb', line 15

def initialize(configuration = nil)
  @configuration = configuration || Configuration.new
  api_client = Http::ApiClient.new(configuration: @configuration)
  @scheduler_api = Http::Api::SchedulerResourceApi.new(api_client)
end

Instance Attribute Details

#scheduler_apiObject (readonly)

Returns the value of attribute scheduler_api.



11
12
13
# File 'lib/conductor/client/scheduler_client.rb', line 11

def scheduler_api
  @scheduler_api
end

Instance Method Details

#delete_schedule(name) ⇒ void

This method returns an undefined value.

Delete a schedule

Parameters:

  • name (String)

    Schedule name



45
46
47
# File 'lib/conductor/client/scheduler_client.rb', line 45

def delete_schedule(name)
  @scheduler_api.delete_schedule(name)
end

#delete_scheduler_tags(name, tags) ⇒ void

This method returns an undefined value.

Delete tags for a schedule

Parameters:

  • name (String)

    Schedule name

  • tags (Array<Hash>)

    Tags to delete



127
128
129
# File 'lib/conductor/client/scheduler_client.rb', line 127

def delete_scheduler_tags(name, tags)
  @scheduler_api.delete_tag_for_schedule(name, tags)
end

#get_all_schedules(workflow_name: nil) ⇒ Array<WorkflowSchedule>

Get all schedules

Parameters:

  • workflow_name (String) (defaults to: nil)

    Filter by workflow name (optional)

Returns:

  • (Array<WorkflowSchedule>)


38
39
40
# File 'lib/conductor/client/scheduler_client.rb', line 38

def get_all_schedules(workflow_name: nil)
  @scheduler_api.get_all_schedules(workflow_name: workflow_name)
end

#get_next_few_schedule_execution_times(cron_expression, schedule_start_time: nil, schedule_end_time: nil, limit: nil) ⇒ Array<Integer>

Get next few schedule execution times

Parameters:

  • cron_expression (String)

    Cron expression

  • schedule_start_time (Integer) (defaults to: nil)

    Start time (epoch ms, optional)

  • schedule_end_time (Integer) (defaults to: nil)

    End time (epoch ms, optional)

  • limit (Integer) (defaults to: nil)

    Number of times to return (optional)

Returns:

  • (Array<Integer>)


81
82
83
84
85
86
87
88
89
# File 'lib/conductor/client/scheduler_client.rb', line 81

def get_next_few_schedule_execution_times(cron_expression, schedule_start_time: nil, schedule_end_time: nil,
                                          limit: nil)
  @scheduler_api.get_next_few_schedules(
    cron_expression,
    schedule_start_time: schedule_start_time,
    schedule_end_time: schedule_end_time,
    limit: limit
  )
end

#get_schedule(name) ⇒ WorkflowSchedule

Get a schedule by name

Parameters:

  • name (String)

    Schedule name

Returns:

  • (WorkflowSchedule)


31
32
33
# File 'lib/conductor/client/scheduler_client.rb', line 31

def get_schedule(name)
  @scheduler_api.get_schedule(name)
end

#get_scheduler_tags(name) ⇒ Array<Hash>

Get tags for a schedule

Parameters:

  • name (String)

    Schedule name

Returns:

  • (Array<Hash>)


119
120
121
# File 'lib/conductor/client/scheduler_client.rb', line 119

def get_scheduler_tags(name)
  @scheduler_api.get_tags_for_schedule(name)
end

#pause_all_schedulesHash

Pause all schedules

Returns:

  • (Hash)


65
66
67
# File 'lib/conductor/client/scheduler_client.rb', line 65

def pause_all_schedules
  @scheduler_api.pause_all_schedules
end

#pause_schedule(name) ⇒ void

This method returns an undefined value.

Pause a schedule

Parameters:

  • name (String)

    Schedule name



52
53
54
# File 'lib/conductor/client/scheduler_client.rb', line 52

def pause_schedule(name)
  @scheduler_api.pause_schedule(name)
end

#requeue_all_execution_recordsHash

Requeue all execution records

Returns:

  • (Hash)


104
105
106
# File 'lib/conductor/client/scheduler_client.rb', line 104

def requeue_all_execution_records
  @scheduler_api.requeue_all_execution_records
end

#resume_all_schedulesHash

Resume all schedules

Returns:

  • (Hash)


71
72
73
# File 'lib/conductor/client/scheduler_client.rb', line 71

def resume_all_schedules
  @scheduler_api.resume_all_schedules
end

#resume_schedule(name) ⇒ void

This method returns an undefined value.

Resume a schedule

Parameters:

  • name (String)

    Schedule name



59
60
61
# File 'lib/conductor/client/scheduler_client.rb', line 59

def resume_schedule(name)
  @scheduler_api.resume_schedule(name)
end

#save_schedule(request) ⇒ void

This method returns an undefined value.

Save (create/update) a schedule

Parameters:

  • request (SaveScheduleRequest)

    Schedule request



24
25
26
# File 'lib/conductor/client/scheduler_client.rb', line 24

def save_schedule(request)
  @scheduler_api.save_schedule(request)
end

#search_schedule_executions(start: 0, size: 100, sort: nil, free_text: '*', query: nil) ⇒ SearchResult

Search schedule executions

Parameters:

  • start (Integer) (defaults to: 0)

    Start index (default: 0)

  • size (Integer) (defaults to: 100)

    Page size (default: 100)

  • sort (String) (defaults to: nil)

    Sort order (optional)

  • free_text (String) (defaults to: '*')

    Free text search (default: '*')

  • query (String) (defaults to: nil)

    Query string (optional)

Returns:

  • (SearchResult)


98
99
100
# File 'lib/conductor/client/scheduler_client.rb', line 98

def search_schedule_executions(start: 0, size: 100, sort: nil, free_text: '*', query: nil)
  @scheduler_api.search_v2(start: start, size: size, sort: sort, free_text: free_text, query: query)
end

#set_scheduler_tags(name, tags) ⇒ void

This method returns an undefined value.

Set tags for a schedule

Parameters:

  • name (String)

    Schedule name

  • tags (Array<Hash>)

    Tags to set



112
113
114
# File 'lib/conductor/client/scheduler_client.rb', line 112

def set_scheduler_tags(name, tags)
  @scheduler_api.put_tag_for_schedule(name, tags)
end