I am been using sidekiq for a longtime but still always get confused with above question.
I want to confirm can there be a race condition where a single sidekiq Job is picked up by two thread simultaneously?
Here it is mentioned that sidekiq doesn't guarantee if job is run only once
Just remember that Sidekiq will execute your job at least once, not exactly once. Even a job which has completed can be re-run. Redis can go down between the point where your job finished but before Sidekiq has acknowledged it in Redis. Sidekiq makes no exactly-once guarantee at all
Any help from anyone who has faced this issue or have any expertise will be highly appreciated.