Я собираюсь реализовать логику повторения для заданий, и логика повторения будет основываться на количестве попыток для конкретного задания. поэтому мы планируем сохранить количество попыток в качестве одного из атрибутов задания.
Вот способ достижения этого:
# Set no. of attempts in the job data
def serialize
super.merge('no_of_attempts' => (@no_of_attempts || 0) + 1)
end
# Get no. of attempts from the job data
def deserialize(job_data)
super
@no_of_attempts = job_data['no_of_attempts']
end
Сохранение количества попыток в атрибуте задания и ограничение количества попыток. количество попыток на основе этого атрибута.
Это хорошо работает при использовании perform_later
. Я знаю, что при постановке в очередь заданий будет вызываться только метод сериализации.
Но в одном из моих случаев я могу использовать perform_now
. Я надеюсь, что добавление дополнительного аргумента к заданию должно быть выполнено с использованием метода active 101 * *, но не уверен, как добавить параметр. Любые предложения, пожалуйста.