Maxence
Maxence

Reputation: 2339

Avoid Sidekiq workers to be concurrent

I am currently running Sidekiq on a small dyno at Heroku. Performance is great to perform simple tasks like checking data, sending emails ..

Though I have recently asynced some image manipulation with ImageMagick and the load seems too big for my current concurrency.

Here is my Sidekiq.yml :

development:
  :concurrency: 5
production:
  :concurrency: 4
:queues:
  - critical
  - default  

When 4 image versionning are fired together the workers stay forever in the queue, They complete alltogether in about 20minutes.

If I set production concurrency to 1, the 4 workers are processed in about 20 seconds. (5 seconds each sequentially)

Is there a way to have specific workers not being processed concurrently so that I can keep a concurrency of 4 but still have the image versionning not choke the little dyno ?

Upvotes: 1

Views: 1380

Answers (1)

Jaffa
Jaffa

Reputation: 12700

Run two sidekiq runners, one specialized for your image processing job, which does not work concurrently, check the documentation for specifics.

Upvotes: 2

Related Questions