We are using a singleton periodic background worker to collect data from web services for all the tenants. I was wondering if anyone has tried making a tenant background workers using transient dependency. This would allow each tenant's background worker to complete it's requests in it's own time, with it's own timer, start and stop methods. I have been caching my web service results. I'm considering this because I don't want one tenant to delay another tenant. Any recommendations?
2 Answer(s)
-
0
Am I understanding transient correctly? That it means everywhere it is injected is a new instance. Maybe I am looking for something like a ITenantSingletonDependency...
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image) -
0
Hi,
Background jobs/workers are not per tenant. I suggest you to create a new thread for each tenant inside your worker then execute them in parallel (you should handle multi-tenancy yourself). But notice that this can be a problem if say that you have too many tenants. So, you may want to use a thread pool instead. Such batch tasks should be carefully designed and optimized. But these topics are out of scope of AspNet Zero, they are generic software development stuff.
Markdown is supportedCopy & paste or drag & drop images (max 30 MB per image)