When to use Service-objects?
Never.
There is of course never an absolute answer to stuff but if you are running it in a background job anyway have you considered directly writing it in a Worker or Job-object? Note that you can always run jobs async when needed.
My main objection against service objects is that all too often they are ill defined as a category. So while having fat controllers or fat models may be a bad thing, just creating a bunch of somewhat arbitrary ‘Services’ is not making the code more manageable.
When considering adding a ‘services’ directory to your app, try to think of what class of problems you want to tackle. And when in doubt, just keep messing around with the somewhat fatter models & controllers, perhaps implemented in concerns for better code structure, or think how perhaps some of the logic can be extracted in something that is really made for your application. Neatly name spaced, based on objects not necessarily associated with the framework.
Using rails? Of interest to enforce some level of structure when you’re considering ‘services’ check out active_record-associated_object by Kasper Timm Hansen