Method: Que::Connection#execute

Defined in:
lib/que/connection.rb

#execute(command, params = []) ⇒ Object



49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
# File 'lib/que/connection.rb', line 49

def execute(command, params = [])
  sql =
    case command
    when Symbol then SQL[command]
    when String then command
    else raise Error, "Bad command! #{command.inspect}"
    end

  params = convert_params(params)

  result =
    Que.run_sql_middleware(sql, params) do
      # Some versions of the PG gem dislike an empty/nil params argument.
      if params.empty?
        wrapped_connection.async_exec(sql)
      else
        wrapped_connection.async_exec_params(sql, params)
      end
    end

  Que.internal_log :connection_execute, self do
    {
      backend_pid: backend_pid,
      command:     command,
      params:      params,
      ntuples:     result.ntuples,
    }
  end

  convert_result(result)
end