私の大きなアプリケーションでは、Rails コンソールの読み込みに時間がかかります。コマンドをより簡単に単一化する方法はありますか?
また、物事を自動化できるようにしたいecho "query" | rails console
のですが、物事を行うのに最適な方法ではありません。
考え?
編集:必要なときにいつでもクエリをpingできる長時間実行プロセスはどうですか?
私の大きなアプリケーションでは、Rails コンソールの読み込みに時間がかかります。コマンドをより簡単に単一化する方法はありますか?
また、物事を自動化できるようにしたいecho "query" | rails console
のですが、物事を行うのに最適な方法ではありません。
考え?
編集:必要なときにいつでもクエリをpingできる長時間実行プロセスはどうですか?
コンソール外でコマンドを実行するには、主に 2 つの方法があります。
:environment に依存する Rake タスク
rails runner (以前は script/runner)、例:
$ rails runner "query"
どちらもレールガイドでかなりよく文書化されています: https://guides.rubyonrails.org/command_line.html#bin-rails-runner
ところで、これらの方法は両方とも、コンソールが起動するのと同じ時間がかかりますが、非対話的なタスクには役立ちます。
パイプするだけです:
echo 'puts Article.count' | bundle exec rails c
Springのおかげで、質問が最初に尋ねられたときよりもはるかに高速になるはずです。即時ではありませんが、アプリ全体をスピンアップするよりもはるかに高速です。これを高速レーンに使用すると、1 秒未満で実行されます (必要なコマンドが高速であると仮定します)。
echo 'puts Article.count' | spring rails c
単一の長時間実行プロセスが本当に必要な場合は、POST を実行するだけのコントローラー アクションを作成し、エイリアスの背後で curl を使用してコマンドを送信することで、簡単に実行できます。もちろん、アクションは完全に安全ではなく、本番環境に近い場所で実行されないように 3 重に保護する必要がありますが、セットアップは簡単です。