Running script on server start in google app engine, in Python
Is it possible to run a script each time the dev server starts? Also at each deploy to google?
I want the application to fill the dat开发者_运维百科abase based on what some methods returns.
Is there any way to do this?
..fredrik
I use appengine python with the django helper. As far as I know you cannot hook anything on the deploy, but you could put a call to check if you need to do your setup in the main function of main.py. This is how the helper initializes itself on the first request. I haven't looked at webapp in a while, but I assume main.py acts in a similar fashion for that framework.
Be aware that main is run on the first request, not when you first deploy. It will also happen if appengine starts up a new instance to handle load, or if all instances were stopped because of inactivity. So make sure you check to see if you need to do your initialization and then only do it if needed.
You can do this by writing a script in your favorite scripting language that performs the actions that you desire and then runs the dev server or runs appcfg.py update.
Try to make wrapper around the server runner and script that run deployment. So you will be able to run custom code when you need.
Warmup Requests in combination with min_idle_instances will probably work in your deploy usecase.
精彩评论