New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
RavenDB Support #26
Comments
thanks very much for the detailed reply :) the problem is as you said, Redis has no official support on windows, will require more pluming in Production. we have been using RavenDB for 2 years now, though initially it had many quirks, now it is very stable product plus in version 3.0 which will be coming 2014 it will have Owin host support, and Mono, Java Support, so it will be multi platform. also RavenDB support is now implemented by many other third party products like NServicebus. also RavenDB has great management studio, uses Linq, Full text search, and works on HTTP, and built in Caching, which i think will be huge for your library and you will have many future scaling ideas. i think if you create some kind of Repository pattern then it will be easy to implement what ever Backend DB System, SQL server, RavenDB, Redis etc... what made me interested in your library is that on the description page it is mentioned that it can be used for Mass Email sends, and this is exactly the problem i am facing now and trying to resolve so when i saw that i got so excited as your product seems so easy to use and has awesome great set of features for a version 1.0 and i am sure it will be improved. thanks again and i am really excited to use this. :) |
I've read something about RavenDB. Its following features are great and will help to build support of RavenDB without violation of HangFire principles:
|
awesome man, one more good thing, is that RavenDB have Embedded mode, so when you want to use it in small projects, then you don't have to set it up on IIS, it is all smooth, even you can run the management Studio in embedded mode. regarding using Expiration Bundle, true it is great, but you have to be aware about one Fact when using the Bundles, which is, you have to set it up from the start, in other words, when you create the Database and before you start Saving Data. as some bundles will require some modifications that will lead to some undesired effects if not installed from the start. which leads me to the idea that, if we want to use Hangfire and make it has it is own Database in Raven, then this is fine as you can set that up in advanced, but if we want to save HangFire Data into the Application existing Database then we will have the problem above, as not everyone will install the expiration bundle in advanced. cant really wait for this to support RavenDB, and if you need some help, their Google forum is so active and you will always get answers. all the best mate :) |
Thanks for this library, it looks really good. I want to use some sort of backend system too, for processing my jobs, my server is windows based and my application is asp.net/mvc. Not sure how complicated it is to set this up for me... |
(I've cleaned this topic a bit to remove obsolete messages) Storage abstraction is done. SQL Server and Redis have a lot of differences and I hope that abstraction is fine. Storage implementation is based on the following topics:
To provide implementation for your storage, you should add the implementation for the following types:
You can see an example of the storage implementation here. I have no plans to provide implementation for other storages, it takes a lot of time (but much lower than to implement background job system 😃). |
thank you very much for the updates |
hi man, we use Quartz here and some .NET Async, but it is far from being Ideal, we have tried NService bus, to huge to expensive. hang fire looks like and awesome alternative but we need Docs and Tuts, without it we are pretty much left with only reading source code and tests, and personally i cant wait for that to happen. one side note, where did you get your Avatar from, i love it it is hilarious :) |
@odinserj I am cool thanks. I wanted to use hangfire but I ended up using a custom and very simple background processing system - mainly due to time constraints to be honest with you and understanding what I did was far easier and tightly integrated with my workflow. Some background work is coming my week next week, I can pretty much use this library as is, I did have difficulty getting this to work, I wanted to try the redis version and the sql version and see which feels best to me. We will see how easy this is, I will see where I can pitch in and help with docs and stuff. To be honest with you, I have never used redis before and just need to understand that a bit better too. Like for example - redis is all in memory, what happens when you restart the machine, do you lose all the jobs in the queue? (Shows my lack of understanding I know) By the way, do you use servicestack in the backend for redis? Is there licensing a bit less open source now? This was something that I had a question on way back... |
First of all, thank you! You made me change my mind about SQL Server support. I made a new version of http://hangfire.io. It contains the philosophy of HangFire together with features and advanced features description. These pages are not so detailed as documentation, however, they can shed light on the main functions. While I'm working on introduction to HF, I can tell you in short about some of the finer points of HangFire processing (please, read the pages above, they clarify many points):
Regarding to Redis, you should read its documentation, it is really great. Here is the topic about persistence models. Shortly, with RDB enabled you can restart your machine. With AOF enabled, you can reset your machine. When your HDD or SSD (or what do you use) became broken, you need to do much more things (as in SQL Server). Please, tell me what item to detail, and I'll do it. And I plugged disquis on documentation site, so please ask any questions. More questions – more information for me. And this information will lead to documentation 😄 PS. @devmondo, I bought my avatar on http://istockphoto.com 😃 |
Regarding to Redis. Yes, HangFire.Redis uses ServiceStack.Redis package. The author says the following:
So, you can use 3.9.x in proprietary projects. And 4.0 is dual-licensed. AGPL is very restricted, proprietary use is prohibited. But you can buy commercial license. HangFire.Redis is linked to 3.9.x version, and I have a plan to choose either Booksleeve or StackExchange.Redis (other assemblies do not depend on ServiceStack.* anymore). And there is one known issue, #53. |
hey man, thank you very much, the new page looks a lot better really and more simplified. based on my reading the way i see it, is we can use redis for now and then change to any storage later when it is needed, correct ? sorry for the lame question, but to use redis for now, what we have to do? so if this work out for me, will it let me replace NserviceBus ? thanks again |
Why do you think to use Redis? You can now use SqlServer, it is enough until you need really great performance. Then you can switch to Redis. |
thanks for reply man, regarding redis, why not ? does it not offer better performance based on what you mentioned above ? in terms of NService Bus, we use it for the usual stuff, send mails, Payment gateways, we don't use the fancy stuff there, as i think it is for really large enterprise stuff, correct ? |
Ok, why not :) But there is no simple case of installing Redis server on Windows, you should run it on Linux system, either on a physical or virtual machine (I'll clarify the documentation about this case, thank you). To install the Redis version of HangFire, you can simply do:
Regarding the use of NServiceBus, it seems to me that you are using it just to start the fire-and-forget tasks to perform them outside of the request processing pipeline, in the background. In this narrow case, you can use HF instead. Enterprise Service Bus pattern can greatly decouple multi-service communication, but it is too complex just for background jobs. On the other hand NServiceBus is a mature product with good documentation, community and support. To be honest with you, I should warn you about the current version of HangFire. It is not 1.0 yet, it is not production-ready for everyone use, and there could be some unknown issues. However it provides much simpler development and debugging (and is fully transparent to you, check integrated web monitoring), because it is much simpler itself. We are using it on production, however you should decide to use it or not by yourself. P.S. I suggest you to close this off-topic issue and move to the HangFire room at JabbR. |
thanks a lot for the detailed info man, i really appreciate it, will close this and move to Jabber as you suggested |
+1 for RavenDB support. |
++1 for RavenDB support |
👍 for RavenDB support |
👍 for RavenDB support Any takers for a open source project (I would contribute 1 oDesk .Net dev to kick it off) |
+1 for RavenDB support |
+1 for RavenDB support The thing with Raven is you could do it all using nuget installs, it would take 10 seconds to set up a working prototype instead of having to set up databases and all that mess. |
+1 for RavenDB support |
+1 for RavenDB 4 support :) |
Hi,
this is awesome library, thanks for it.
is there a possibility to use ravendb as back end storage instead of Redis ?
thanks in advanced.
The text was updated successfully, but these errors were encountered: