persisting a task + execute later and remove that task from queue using hangfire or quarts or builtin

22 views Asked by At

How can I create two services, one for persisting a job and another for executing jobs?

I want to save around 10,000 user requests in the database, return them in a pending status, and process(+remove after process) them one by one after a period of time.

This is what I have in mind:

using Hangfire;

public interface IJobPersistenceService
{
    void PersistJob(JobDetails jobDetails);
}

public class JobPersistenceService : IJobPersistenceService
{
    public void PersistJob(JobDetails jobDetails)
    {
        // Code to persist job details to a database or storage mechanism
    }
}

public interface IJobExecutionService
{
    void ExecuteJob(JobDetails jobDetails);
}

public class JobExecutionService : IJobExecutionService
{
    public void ExecuteJob(JobDetails jobDetails)
    {
        // Code to execute job using Hangfire
        BackgroundJob.Enqueue(() => YourJobMethod(jobDetails));
    }

    public void YourJobMethod(JobDetails jobDetails)
    {
        // Code to perform the job task
    }
}

public class JobDetails
{
    public string JobId { get; set; }
    public string JobName { get; set; }
    // Add any other job details as needed
}
0

There are 0 answers