Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
# frozen_string_literal: true class TaskExecutionContext attr_reader :resource_type, :resource_ids, :job, :worker def initialize(resource_type, resource_ids, job, worker) @resource_type = resource_type @resource_ids = resource_ids @job = job @worker = worker end delegate :set_progress_total!, :increment_progress!, :set_progress!, :succeed!, :fail!, to: :worker def attach_file!(path, filename:, description: nil) file = File.open(path) @job.files.attach( io: file, filename: filename, metadata: { description: description } ) ensure file&.close end def resources @resources ||= @resource_type.constantize.where(id: @resource_ids) end def each_resource(&block) resources.find_each do |resource| yield resource worker.increment_progress! end end def find_resource(id) resources.find(id) end def resource_count @resource_ids.count end def job_id @job.id end def job_resources @job.background_job_resources end end
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)