Это глобальный вопрос про всё. пошагово я сейчас разбираюсь, но хочется сэкономить усилия, если где-то описан процесс более сложный, чем "давайте напишем def run(_), do: Mix.info("hello")"
а вы какую задачу решаете? вопрос про запуск приложения выглядит примерно так def run(_) do # This will start our application Mix.Task.run("app.start") Hello.say() end
У меня небольшой сервис HTTP API клиентский админский интерфейс на тасках, (чтобы не возиться с формочками и авторизацией) В админском интерфейсе надо подключиться к базе, вставить, выдернуть данные, дёрнуть несколько внутренних HTTP сервисов, но не грузить ковбой. Соответственно пока что получается так: 1. надо вручную определить окружение 2. загрузить конфиг 3. стартануть пул к базе 4. стартануть пул http-клиента если надо 4.а. Стартануть один GenServer, опять если надо 5. и наконец выполнить задачу
интересное вы себе развлечение придумали, чтобы не возиться с формочками и авторизацией, которые феникс умеет генерить парой команд из коробки...
а кто в итоге инициатор запуска таски? вызов по апи?
админ идёт по ssh на нужный сервер, и пишет sudo su - adminuser "mix host.add data data data"
а всё-таки, почему админ не может зайти в консоль вашего приложения, и сделать "iex> Host.add(data)" ? причем вы коннектитесь через remote к работающему приложению, и не проверяете что там надо стартовать, там уже всё нужное работает
можно положить на сервер башфайл который сделает rpc с нужной командой вместо remote
можно наверно и make файл с пачкой rpc команд сделать?)
а вы без релизов деплоитесь?
ээ, что? ты за кого меня считаешь?
в релизе же mix нет
Обсуждают сегодня