Sidekiq 7 – grafer och inbäddning

Sidekiq är Ruby-världens mest populära bibliotek för att köra bakgrundsjobb. Ni vet när man vill göra saker som inte användaren ska behöva vänta på, som att skicka ut ett mail eller ta fram statistik.

Vi på Standout använder ofta Ruby eftersom det är så trevligt att arbeta med. Bakgrundsjobb är vanligt när man bygger integrationer, och även vi använder Sidekiq på sina platser. Nu när version 7 har släppts tänker jag presentera de två största förändringarna.

Grafer – markera ny deploy

När du driftsatt din fantastiska ändring vill du gärna kunna se hur prestandan har påverkats. Det går numera bra att använda sig av Sidekiq för att markera direkt i graferna vilken commit de hör till.

Exempel från dokumentationen:

require "sidekiq/deploy"
gitdesc = `git log -1 --format="%h %s"`.strip
Sidekiq::Deploy.mark!(gitdesc)
Sidekiq 7 - grafer och inbäddning 1

Har du inte sett den nya Metrics-tabben tycker jag det är hög tid att kolla in den redan idag. Läs mer här.

Inbäddning – sparar minne

Det här är för dig som vill spara minne. Vanligtvis så körs Sidekiq i en process och webbservern (Puma, Passenger eller Unicorn exempelvis) i en annan process. Båda tar upp ungefär lika mycket minne, vilket kan kännas onödigt.

Sidekiq 7 låter dig bädda in Sidekiq direkt inne i webbprocessen, vilket gör att de båda sammanlagt kanske drar ca 600 MB minne istället för 500 MB + 500 MB = 1000 MB om de hade körts separat.

Det här ger en del begränsningar som hur många trådar du kan köra, samt att du enbart kan konfigurera den via Ruby – inbäddad Sidekiq lyssnar över huvud taget inte på argument som kommer från kommandoraden eller den vanliga konfigureringsfilen. Läs mer om hur du använder inbäddning.