Module: RocketJob
- Defined in:
- lib/rocketjob.rb,
lib/rocket_job/cli.rb,
lib/rocket_job/job.rb,
lib/rocket_job/batch.rb,
lib/rocket_job/event.rb,
lib/rocket_job/config.rb,
lib/rocket_job/server.rb,
lib/rocket_job/worker.rb,
lib/rocket_job/railtie.rb,
lib/rocket_job/version.rb,
lib/rocket_job/batch/io.rb,
lib/rocket_job/heartbeat.rb,
lib/rocket_job/rocket_job.rb,
lib/rocket_job/subscriber.rb,
lib/rocket_job/supervisor.rb,
lib/rocket_job/batch/model.rb,
lib/rocket_job/performance.rb,
lib/rocket_job/worker_pool.rb,
lib/rocket_job/batch/logger.rb,
lib/rocket_job/batch/result.rb,
lib/rocket_job/batch/worker.rb,
lib/rocket_job/dirmon_entry.rb,
lib/rocket_job/plugins/cron.rb,
lib/rocket_job/server/model.rb,
lib/rocket_job/sliced/input.rb,
lib/rocket_job/sliced/slice.rb,
lib/rocket_job/active_worker.rb,
lib/rocket_job/batch/results.rb,
lib/rocket_job/batch/tabular.rb,
lib/rocket_job/job_exception.rb,
lib/rocket_job/plugins/retry.rb,
lib/rocket_job/sliced/output.rb,
lib/rocket_job/sliced/slices.rb,
lib/rocket_job/batch/throttle.rb,
lib/rocket_job/batch/callbacks.rb,
lib/rocket_job/jobs/active_job.rb,
lib/rocket_job/jobs/dirmon_job.rb,
lib/rocket_job/jobs/simple_job.rb,
lib/rocket_job/plugins/restart.rb,
lib/rocket_job/batch/statistics.rb,
lib/rocket_job/plugins/document.rb,
lib/rocket_job/batch/performance.rb,
lib/rocket_job/plugins/job/model.rb,
lib/rocket_job/plugins/singleton.rb,
lib/rocket_job/jobs/copy_file_job.rb,
lib/rocket_job/jobs/on_demand_job.rb,
lib/rocket_job/plugins/job/logger.rb,
lib/rocket_job/plugins/job/worker.rb,
lib/rocket_job/subscribers/logger.rb,
lib/rocket_job/subscribers/server.rb,
lib/rocket_job/subscribers/worker.rb,
lib/rocket_job/batch/state_machine.rb,
lib/rocket_job/batch/tabular/input.rb,
lib/rocket_job/plugins/transaction.rb,
lib/rocket_job/sliced/writer/input.rb,
lib/rocket_job/supervisor/shutdown.rb,
lib/rocket_job/throttle_definition.rb,
lib/rocket_job/batch/lower_priority.rb,
lib/rocket_job/batch/tabular/output.rb,
lib/rocket_job/jobs/performance_job.rb,
lib/rocket_job/jobs/upload_file_job.rb,
lib/rocket_job/plugins/job/throttle.rb,
lib/rocket_job/server/state_machine.rb,
lib/rocket_job/sliced/writer/output.rb,
lib/rocket_job/throttle_definitions.rb,
lib/rocket_job/jobs/housekeeping_job.rb,
lib/rocket_job/plugins/job/callbacks.rb,
lib/rocket_job/plugins/state_machine.rb,
lib/rocket_job/sliced/encrypted_slice.rb,
lib/rocket_job/plugins/job/persistence.rb,
lib/rocket_job/sliced/compressed_slice.rb,
lib/rocket_job/jobs/on_demand_batch_job.rb,
lib/rocket_job/plugins/job/state_machine.rb,
lib/rocket_job/plugins/processing_window.rb,
lib/rocket_job/extensions/mongoid/factory.rb,
lib/rocket_job/batch/throttle_running_workers.rb,
lib/rocket_job/jobs/re_encrypt/relational_job.rb,
lib/rocket_job/jobs/on_demand_batch_tabular_job.rb,
lib/rocket_job/plugins/job/throttle_running_jobs.rb,
lib/rocket_job/extensions/mongoid/clients/options.rb
Overview
Job to dynamically perform ruby code on demand as a Batch, with input and/or output from CSV/JSON or other format supported by Tabular.
Nodes:
-
Need to specify ‘destroy_on_complete: false` to collect output from this job.
-
‘after_code` can be used to automatically download the output of this job to a file on completion.
Example: Iterate over all rows in a table:
code = <<-CODE
if user = User.find(row)
user.cleanse_attributes!
user.save(validate: false)
end
CODE
job = RocketJob::Jobs::OnDemandBatchTabularJob.new(code: code, description: 'cleanse users', destroy_on_complete: false)
job.upload("users.csv")
job.save!
On completion export the output: job.download(“output.csv”)
Defined Under Namespace
Modules: Batch, Jobs, MongoidClients, MongoidFactory, Plugins, Sliced, Subscriber, Subscribers Classes: ActiveWorker, CLI, Config, DirmonEntry, Event, Heartbeat, Job, JobException, Performance, Railtie, Server, Supervisor, ThrottleDefinition, ThrottleDefinitions, Worker, WorkerPool
Constant Summary collapse
- VERSION =
"5.2.0".freeze
Class Method Summary collapse
- .create_indexes ⇒ Object
- .rails! ⇒ Object
-
.rails? ⇒ Boolean
When running inside a Rocket Job server process, returns true when Rails has been initialized.
-
.seconds_as_duration(seconds) ⇒ Object
Returns a human readable duration from the supplied [Float] number of seconds.
- .server! ⇒ Object
-
.server? ⇒ Boolean
Whether the current process is running inside a Rocket Job server process.
-
.standalone? ⇒ Boolean
When running inside a Rocket Job server process, returns true when running standalone.
Class Method Details
.create_indexes ⇒ Object
2 3 4 5 6 7 |
# File 'lib/rocket_job/rocket_job.rb', line 2 def self.create_indexes # Ensure models with indexes are loaded into memory first Job.create_indexes Server.create_indexes DirmonEntry.create_indexes end |
.rails! ⇒ Object
57 58 59 |
# File 'lib/rocket_job/rocket_job.rb', line 57 def self.rails! @rails = true end |
.rails? ⇒ Boolean
When running inside a Rocket Job server process, returns true when Rails has been initialized.
16 17 18 |
# File 'lib/rocket_job/rocket_job.rb', line 16 def self.rails? @rails end |
.seconds_as_duration(seconds) ⇒ Object
Returns a human readable duration from the supplied [Float] number of seconds
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/rocket_job/rocket_job.rb', line 27 def self.seconds_as_duration(seconds) return nil unless seconds if seconds >= 86_400.0 # 1 day "#{(seconds / 86_400).to_i}d #{Time.at(seconds).strftime('%-Hh %-Mm')}" elsif seconds >= 3600.0 # 1 hour Time.at(seconds).strftime("%-Hh %-Mm") elsif seconds >= 60.0 # 1 minute Time.at(seconds).strftime("%-Mm %-Ss") elsif seconds >= 1.0 # 1 second format("%.3fs", seconds) else duration = seconds * 1000 if defined? JRuby "#{duration.to_i}ms" else duration < 10.0 ? format("%.3fms", duration) : format("%.1fms", duration) end end end |
.server! ⇒ Object
53 54 55 |
# File 'lib/rocket_job/rocket_job.rb', line 53 def self.server! @server = true end |
.server? ⇒ Boolean
Whether the current process is running inside a Rocket Job server process.
10 11 12 |
# File 'lib/rocket_job/rocket_job.rb', line 10 def self.server? @server end |
.standalone? ⇒ Boolean
When running inside a Rocket Job server process, returns true when running standalone.
22 23 24 |
# File 'lib/rocket_job/rocket_job.rb', line 22 def self.standalone? !@rails end |