On Tue, Feb 12, 2013 at 9:10 PM, Ari <[email protected]> wrote:
> How does one bootstrap web apps comprised of ring + compojure (and/or
> aleph) + hbase/mongodb? Is there a best practice or recommended way? For
> example, in Rails based apps a series of predetermined "initialization"
> files are executed to fulfill various tasks, i.e. connect to dbs, message
> queues, active background jobs, etc. Thanks.
>
I've solved it by creating a bootstrap-function in my handler.clj, that
inits/bootstraps
the required components/namespaces in turn, like this:
(defn bootstrap! []
(scheduler/bootstrap!)
(mongo/bootstrap!))
...and passing it to ring's init-param in my project.clj, like this:
:ring {:init myapp.handler/bootstrap!
...}
I came up with this in the heat of the moment when I realized that I needed
a one-time bootstrapping step at startup, so by no means would I tout this
as "the one proper way" to do it.
My application is not big enough that this is really a concern for me, but
I'm
not that enticed by adding direct dependencies to everything that needs
bootstrapping in my handler.clj.
As a somewhat nicer solution, I considered separating out the
handler/bootstrap!-
function into a separate bootstrap.clj that would pull in the required
namespaces
and have handler.clj depend only on that.
I'd love to hear how other people solved this, and thoughts in general.
--
--
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to [email protected]
Note that posts from new members are moderated - please be patient with your
first post.
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
---
You received this message because you are subscribed to the Google Groups
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.