Reputation: 2339
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
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