Rails & Neo4j - background processing and or queue - DelayedJob, SideKiq, RabbitMQ, Resque - which will fill these requirements? -
Rails & Neo4j - background processing and or queue - DelayedJob, SideKiq, RabbitMQ, Resque - which will fill these requirements? -
i have neo4j cypher queries take quite bit of time process (they aggregate data).. i've optimized them death, still take longer want.. (using rails 3.2, rest (neography gem), ruby 1.93, neo4j 1.98, mac osx 10.7 )
for example, when user comments on object, fan out updates of friends. right fan out process attached comment process, , need separate out, otherwise user comments waits longer necessary.. , need guarantee job run , not lost or never executed, if whole scheme has rebooted.
so first question is, want require message queue , background processing tool, or can both of these found in 1 system. i.e., might case of needing message queue guarantee job executed, using background process execute job?
secondly, system(s) meet requirements?
here requirements, in order of priority:
run in background. deed of commenting kick off job executed later/or separate process
guarantee execution. if reboot servers , queue, must carry out task when up..
doesn't require activerecord data.. i'm not using activerecord @ - candidate can't require info in activerecord source. queue etc in activerecord, none of info is..
multiple queues: queues more of import others - have higher priority - should able give more cpu time queues
scalable: needs able run multiple processes/threads (like sidekiq)
distributed: can run jobs on different servers/cluster
easy implement: don't want write tons of code have working in other system.
admin interface: nice have gui of sort work with.
please, i'm not asking fanboy answers or flame wars, nor answers 2007.. looking 2014 info..
i aware there sidekiq, rabbitmq, , delayedjob, resque etc... please tell me have found strengths , weaknesses of each scheme - or other scheme - based upon recent experience recent versions, , why 1 in particular meets these requirements.
finally doesn't matter one(s) "better" overall rather, 1 best fits these needs technical perspective.
ruby-on-rails rabbitmq delayed-job resque sidekiq
Comments
Post a Comment