Question: Is there a way to set hangfire recurring jobs every few seconds?
I do not seek a solution where fire and forget task creates another fire and forget task, and if not, what are suggested alternatives?

Answer: 
Not sure when this became supported but tried this in ASP.NET Core 2.0 with Hangfire 1.7.0. The following code schedules a job every 20 seconds:

```
RecurringJob.AddOrUpdate<SomeJob>(
    x => x.DoWork(),
    "*/20 * * * * *");

```

If I am not mistaken 6 tokens (as opposed to standard 5 tokens) is supported due to Hangfire use of [NCrontab](https://github.com/atifaziz/NCrontab) which allows cron expressions with 6 tokens (second granularity instead of minute granularity).

Hangfire dashboard also nicely shows the small time interval between runs:

[![Hangfire dashboard](https://i.stack.imgur.com/RLeYF.png)](https://i.stack.imgur.com/RLeYF.png)
I had to do the same but with 5 seconds. The default schedule polling interval is set to 15s. So it requires 2 steps to achieve a 5s interval job.

in Startup.cs

```
var options = new BackgroundJobServerOptions
{
    SchedulePollingInterval = TimeSpan.FromMilliseconds(5000)
};

app.UseHangfireDashboard();
app.UseHangfireServer(options);

```

Your job

```
RecurringJob.AddOrUpdate(() => YourJob(), "*/5 * * * * *");

```