I found post about running Exq in elixir app: http://learningwithjb.com/posts/exq-the-background-job-solution-for-phoenix
I installed redis
I installed exq
I added exq config:
config :exq,
host: "127.0.0.1",
port: 6379,
namespace: "exq",
concurrency: 8,
queues: ["default"],
poll_timeout: 50,
scheduler_poll_timeout: 200,
scheduler_enable: true,
max_retries: 25
After opened exlir console I type: Exq.start_link
but I received {:error, {:already_started, #PID<0.242.0>}}
. I have checked more details:
> {:error, {:already_started, pid}} = Exq.start_link # {:error, {:already_started, #PID<0.242.0>}}
> Process.alive?(pid) # true
> Process.info(pid)
[registered_name: Exq.Sup, current_function: {:gen_server, :loop, 6},
initial_call: {:proc_lib, :init_p, 5}, status: :waiting, message_queue_len: 0,
messages: [],
links: [#PID<0.245.0>, #PID<0.247.0>, #PID<0.253.0>, #PID<0.254.0>,
#PID<0.252.0>, #PID<0.246.0>, #PID<0.243.0>, #PID<0.244.0>, #PID<0.241.0>],
dictionary: ["$ancestors": [#PID<0.241.0>],
"$initial_call": {:supervisor, Supervisor.Default, 1}], trap_exit: true,
error_handler: :error_handler, priority: :normal, group_leader: #PID<0.240.0>,
total_heap_size: 6771, heap_size: 2586, stack_size: 9, reductions: 982,
garbage_collection: [min_bin_vheap_size: 46422, min_heap_size: 233,
fullsweep_after: 65535, minor_gcs: 1], suspending: []]
Unfortunatelly when I want to run exq job from mix task then I receive:
** (exit) exited in: GenServer.call(Exq, {:enqueue, "default", SampleWorker, [123]}, 5000)
** (EXIT) no process
(elixir) lib/gen_server.ex:596: GenServer.call/3
(elixir) lib/enum.ex:651: Enum."-each/2-lists^foreach/1-0-"/2
(elixir) lib/enum.ex:651: Enum.each/2
(mix) lib/mix/task.ex:296: Mix.Task.run_task/3
(mix) lib/mix/cli.ex:58: Mix.CLI.run_task/2
(elixir) lib/code.ex:363: Code.require_file/2
Maybe someone can help me and tell what should I do or what I am doing wrong.