This is not my favorite solution, but if you need to use the delay method that you can set, follow these steps: one step less than your attempts. So in your case, the following should work
User.delay(queue: 'users', attempts: 2).grab_third_party_info(user.id)
Even better, but you can make it safer using Delayed :: Worker.max_attempts
User.delay(queue: 'users', attempts: Delayed::Worker.max_attempts-1).grab_third_party_info(user.id)
This would put it into your delayed_jobs table, as if it had already been run twice, so when you restart it, it will be executed at maximum attempts.
Kevinm
source share