Python: running process in the background with ability to kill them
It depends on your application logic. If you just feed the data into the database without any CPU intensive tasks, then most of your application time will be spent on IO and threads would be sufficient. If you are doing some CPU intensive suff then you should use the multiprocessing module so you can use all your CPU cores, which threads wont allow you because of the GIL.
Using subprocess would just add an additional task of implementing the same stuff that's already implemented in the multiprocessing module so I would skip that (why reinvent the wheel). And gevents is just an event loop I don't see how will that be better than using threads. But if I'm wrong please correct me, I never used gevent.
I need to constantly load a number of data feeds. The data feeds can take 20-30 seconds to load. I know what feeds to load by checking a MySQL database every hour. 
I could have up to 20 feeds to load at the same time. It's important that non of the feeds block each other as I need to refresh them constantly.  
When I no longer need to load the feeds the database that I'm reading gets updated and I thus need to stop loading the feed which I would like to do from my main program so I don't need multiple connections to the db. 
I'm aware that I could probably do this using this using threading, subprocess or gevents. I wanted to ask if any of these would be best. 
Thanks