Reputation: 6033
If I start gunicorn with -w 4
with an app with the content
print 'hello'
it will print four times 'hello'
. Is there some way to coordinate this in such a way that only one 'hello'
is printed? I want to do some cleanup on start which I'd like to be only executed once.
Upvotes: 24
Views: 12251
Reputation: 48564
You can write a server hook, for example on_starting
, which will run in the master process and thus only happen once.
I think these only work if you're using a Python script for configuration, like in their example.
(This is the OP speaking):
What worked for me was to create a config file "my_conf.py" with the content:
def on_starting(server):
print(1)
Then
gunicorn [...] -w 2 -c my_conf.py &
prints "1" only once on server start although two workers were specified to be used.
Upvotes: 29