lib/tobox/plugins/progress.rb in tobox-0.6.1 vs lib/tobox/plugins/progress.rb in tobox-0.7.0
- old
+ new
@@ -9,20 +9,27 @@
module FetcherMethods
private
def do_fetch_events
- # mark events as invisible by using run_at as a visibility timeout
+ # mark events as invisible
+
+ # @type var mark_as_fetched_params: Hash[Symbol, untyped]
mark_as_fetched_params = {
- run_at: Sequel.date_add(
- Sequel::CURRENT_TIMESTAMP,
- seconds: @configuration[:visibility_timeout]
- ),
- attempts: Sequel[@table][:attempts] + 1,
last_error: nil
}
+ mark_as_fetched_params[@attempts_column] = Sequel[@table][@attempts_column] + 1 if @attempts_column
+ mark_as_fetched_params[@visibility_column] = if @configuration.visibility_type_bool?
+ true
+ else
+ Sequel.date_add(
+ Sequel::CURRENT_TIMESTAMP,
+ seconds: @configuration[:visibility_timeout]
+ )
+ end
+
if @ds.supports_returning?(:update)
@ds.where(id: fetch_event_ids).returning.update(mark_as_fetched_params)
else
event_ids = fetch_event_ids.select_map(:id)
events_ds = @ds.where(id: event_ids)
@@ -34,10 +41,10 @@
def calculate_event_retry_interval(attempts)
super(attempts - 1)
end
def set_event_retry_attempts(event, update_params)
- update_params.delete(:attempts)
+ update_params.delete(@attempts_column)
super
end
def events_tr
yield