# Engineering Topics 1 # sda-core, sda-db sda-core Jobs: * when a Job fails, next invocation should happen after a configured interval, now it is invoked right away which spams the logs * when Jobs module is being stopped, Jobs with long intervals prevent it from shutting down for up to the longest interval. This makes long (> 1 min) Job intervals unfeasible. * each Job invocation should start a new logging/tracing context sda-db #find_by_and_lock!(): * what is the expected functionality? ```ruby wallet = wallets_repo.find_by_and_lock!( id: id, state: "ACTIVE" ) wallet # => ? ``` # Shared RSpec examples ```ruby # spec_helper.rb require "sda-messaging/rspec" require "sda-core/rspec" ``` # Error handling ```ruby def call # something happens here and raises an error rescue StandardError => e raise Core::Error(e).with( "#{self} failed", params.to_h ) # => Core::Error # "Actions::Wallets::Create failed: String is expected as ID (ArgumentError)" # params: { id: "asd", ...}, # backtrace: ... # end ``` ```ruby while job.run rescue => e logger.error e end ```