Я делаю задачу, которая получает json в api и вставляет в MongoDb. Я использую phoenix и Mongodb_Ecto.Phoenix Repo.insert из контроллера
У меня есть модель группы и этот код в контроллер работает как шарм:
HTTPoison.start
group = %Group{ param1: "value", param2: "value" } |> Repo.insert!
Но в задаче я не имею Repo defmodule. Я пытался это сделать:
HTTPoison.start
group = %Group{ param1: "value", param2: "value"} |> MyApp.Repo.insert!
Использование MyApp.Repo вместо репо.
Я получаю эту ошибку:
** (exit) exited in: :gen_server.call(MyApp.Repo.Pool, {:checkout, #Reference<0.0.1.11>, true}, 5000)
** (EXIT) no process
:erlang.send(MyApp.Repo.Pool, {:"$gen_cast", {:cancel_waiting, #Reference<0.0.1.11>}}, [:noconnect])
(stdlib) gen_server.erl:416: :gen_server.do_send/2
(stdlib) gen_server.erl:232: :gen_server.do_cast/2
src/poolboy.erl:58: :poolboy.checkout/3
(stdlib) timer.erl:197: :timer.tc/3
lib/mongo/pool/poolboy.ex:33: Mongo.Pool.Poolboy.run/2
lib/mongo/pool.ex:142: Mongo.Pool.run_with_log/5
lib/mongo.ex:220: Mongo.insert_one/4
lib/mongo_ecto/connection.ex:124: Mongo.Ecto.Connection.catch_constraint_errors/1
lib/mongo_ecto.ex:522: Mongo.Ecto.insert/6
lib/ecto/repo/model.ex:253: Ecto.Repo.Model.apply/4
lib/ecto/repo/model.ex:83: anonymous fn/10 in Ecto.Repo.Model.do_insert/4
lib/ecto/repo/model.ex:14: Ecto.Repo.Model.insert!/4
Как я могу получить доступ Repo.insert правильным способом, чтобы сохранить мои данные в MongoDB?
Спасибо за это.
Попробуйте добавить это выше 'HTTPoison.start':': application.ensure_all_started (: my_app) '(введите имя своего приложения OTP вместо': my_app'). – Dogbert
Спасибо за этого человека! Работает как шарм = D –