diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/mastodon/search_cli.rb | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/lib/mastodon/search_cli.rb b/lib/mastodon/search_cli.rb index 42ad93f1e..8bd5f9543 100644 --- a/lib/mastodon/search_cli.rb +++ b/lib/mastodon/search_cli.rb @@ -6,6 +6,7 @@ require_relative 'cli_helper' module Mastodon class SearchCLI < Thor + option :processes, default: 2, aliases: [:p] desc 'deploy', 'Create or update an ElasticSearch index and populate it' long_desc <<~LONG_DESC If ElasticSearch is empty, this command will create the necessary indices @@ -13,10 +14,28 @@ module Mastodon This command will also upgrade indices if the underlying schema has been changed since the last run. + + With the --processes option, parallelize execution of the command. The + default is 2. If "auto" is specified, the number is automatically + derived from available CPUs. LONG_DESC def deploy - processed = Chewy::RakeHelper.upgrade - Chewy::RakeHelper.sync(except: processed) + processed = Chewy::RakeHelper.upgrade(parallel: processes) + Chewy::RakeHelper.sync(except: processed, parallel: processes) + end + + private + + def processes + return true if options[:processes] == 'auto' + + num = options[:processes].to_i + + if num < 2 + nil + else + num + end end end end |