I’m using RabbitMq on my server already, and have just started using Hangfire, so wanted use them together.
My current startup class looks like:
app.UseHangfire(config =>
{
config.UseSqlServerStorage("HangfireDb")
.UseRabbitMq(mq => new RabbitMqConnectionConfiguration(), new string[] { "HangfireJobs" });
if (ConfigurationManager.AppSettings["HangFireHost"] != null && ConfigurationManager.AppSettings["HangFireHost"] == "true")
config.UseServer();
});
What I am noticing is that Hangfire is creating the required queue on RabbitMq however, it doesn’t seem like any fire and forget calls make use of the queue. They all seem to still be polled from sql server. The latency is upwards to 10-15 seconds. Which i understand is the default sql polling interval.
Am i configuring correctly? I can’t see any activity on rabbitmq console as well.
The website that i am using on, is a single website, however it is deployed on the same server as 3 different websites. Installled on IIS as distinct websites with code in 3 distinct folders. The reason being each site is branded slightly differently. What i noticed was if I left the “UseServer()” ON, across all these sites the sites start to crawl a little. So now i only run this on 1 site. Jobs queued from site 2 and 3 get picked by site 1’s worker and is processed successfully. Since the code bases are the same it all works.
I am still in trial mode, so HF isn’t used extensively just yet, just on some specific lightweight processes. This would account to something like 20 jobs a day. The number of sql connections open on hangfiredb seems to be excessive. Presently sitting at 10-15 connections. Is this expected behaviour?
Thoughts and pointers will be greatly appreciated.