i wouldn't do it that way. when deploying your app just do a pre-start 
script, that ensures the existence of your desired data. 
If you have periodical tasks, it's best to use a lib for it, that triggers 
jobs appart of your main application. 
i.E 
http://stackoverflow.com/questions/3785736/is-there-a-job-scheduler-library-for-node-js
 
, so you just avoid the concurrency problems. 

Am Freitag, 5. Oktober 2012 14:04:58 UTC+2 schrieb Tom:
>
> I've setup a cluster of physical servers. Each server runs exactly the 
> same code. Moreover, each server runs multiple node processes using 
> the build in cluster functionality.
>
> I use MongoDB (native) to share information between processes and servers. 
> However, I am having some difficulty with running a special task that needs 
> to be executed only once during initialization:
> > if a special `admin` account does not yet exist in the database, it 
> should be created
>
> Originally I figured that I could read from the MongoDB master server on 
> each node and check if the admin account already exists. If it does not 
> then another node has not yet created it, so this node should do so. 
> However this is problematic because creating an admin password hash is 
> asynchronous and takes time. Therefore there is a delay between when a node 
> decides to create the account and when the account is being found by other 
> nodes when querying the database.
>
> The code snippet that reads from the Mongo master only and creates the 
> account is available here: https://gist.github.com/3839429
>
> In the future I would also like a special task to be executed every 5 
> minutes. This task must then only be executed by a running server, and not 
> by all servers.
>
> In short: when running a cluster of servers, how do you coordinate between 
> these servers which of them is going to execute a sole task such as the one 
> described above?
>
> Tom
>

-- 
Job Board: http://jobs.nodejs.org/
Posting guidelines: 
https://github.com/joyent/node/wiki/Mailing-List-Posting-Guidelines
You received this message because you are subscribed to the Google
Groups "nodejs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/nodejs?hl=en?hl=en

Reply via email to