HangfireIO / Hangfire

An easy way to perform background job processing in .NET and .NET Core applications. No Windows Service or separate process required
https://www.hangfire.io
Other
9.32k stars 1.69k forks source link

Hangfire 2.0 roadmap #929

Open odinserj opened 7 years ago

odinserj commented 7 years ago

2021 Update

The list below is more like a dream than a roadmap – it contains significant changes no one except new users would like to see. It's a great list of features for the new product, but I don't see how it can be possible to move forward these items while maintaining backward compatibility, the essential feature in Hangfire.

Programming Model

In short: generalization of a background job, more Task-like semantics for background jobs.

Goals:

Storage Model

In short: support for coarse-grained operations, idempotent writes to support eventually-consistent storages.

  1. Two general aspects of a storage are message queues and background jobs, other types are removed.
  2. Storage transactions are exposed directly to user code to support atomic and batched operations.
  3. All storage operations are coarse-grained to support batch processing.
  4. Each command in a storage transaction is idempotent to support eventually-consistent storages.
  5. Storages that support automatic sharding can use it by implementing custom transaction log.
  6. Built-in support for time-based scheduling in message queues for faster delayed jobs.
  7. Storage abstractions know nothing about user types, data is serialized before passing to thee storage API.
  8. Full support for asynchronous I/O for storages in every query.
  9. Binary data and payloads for variable-length fields to reduce payload size.

Goals:

ffMathy commented 2 years ago

@odinserj any news on this? Especially the "better performance for scheduled processing" part is super important to us.

odinserj commented 2 years ago

Much faster scheduled jobs with less hops will be possible with the upcoming Hangfire 1.8.0 I'm planning to release at the end of this month. The new version allows to specify a queue explicitly for a background job, and in this case Hangfire will use less state changes for delayed jobs. You can even try to download the 1.8.0-beta3 version and use the new feature in the following way:

BackgroundJob.Schedule("default", () => Console.WriteLine("Hello"), TimeSpan.FromSeconds(15));
usamanada commented 2 years ago

Cassandra storage support is important feature .. we are moving from SQL Server to Cassandra. We don't Redis and will not be also to create a dedicated mongo cluster for HangFire.

We hope to see this feature soon. We love HangFire and don't want change technology after we based many things on it.

odinserj commented 2 years ago

Unfortunately there are no plans to implement Cassandra storage support, and I've also updated the original post, please see the top of the page.