Class: CompletionKit::ModelDiscoveryJob

Inherits:
ApplicationJob
  • Object
show all
Defined in:
app/jobs/completion_kit/model_discovery_job.rb

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.rate_limit_wait(executions) ⇒ Object



7
8
9
# File 'app/jobs/completion_kit/model_discovery_job.rb', line 7

def self.rate_limit_wait(executions)
  30 * executions
end

Instance Method Details

#perform(provider_credential_id) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'app/jobs/completion_kit/model_discovery_job.rb', line 27

def perform(provider_credential_id)
  credential = ProviderCredential.find_by(id: provider_credential_id)
  return unless credential

  credential.update_columns(discovery_status: "discovering", discovery_current: 0, discovery_total: 0)
  credential.reload
  credential.broadcast_discovery_progress

  service = ModelDiscoveryService.new(config: credential.config_hash)
  service.refresh! do |current, total|
    credential.update_columns(discovery_current: current, discovery_total: total)
    credential.reload
    credential.broadcast_discovery_progress
  end

  credential.update_columns(discovery_status: "completed", updated_at: Time.current)
  credential.reload
  credential.broadcast_discovery_complete
end