Kerestem egy módot arra, hogy egy Python Bottle alkalmazásban folytonos háttérfeladatot futtassak, miközben egyidejűleg a Geventet használom a kérések kezelésére:
from gevent import monkey; monkey.patch_all()
from time import sleep
from bottle import route, run
# run_background_function()
# ^^^^ starts a single background task that runs every few seconds
# and continues for the life of the whole Bottle application.
@route('/simple-request')
def simple_request():
# a simple function that returns a rendered page and
# is capable of serving multiple requests
return rendered_page()
run(host='0.0.0.0', port=8080, server='gevent')
Eddig sok stackoverflow szálat és 7 teljes oktatóanyagot elolvastam, köztük a Gevent, a threading, a celery, a rabbitmq, a redis, és fogalmam sincs, mit kellene használnom ennek a képességnek a eléréséhez. A Celery, a RabbitMQ és a Redis mind őrülten nehéznek és túlzásnak tűnik ennek az egyetlen háttérfeladatnak a futtatásához, ráadásul, ha lehetséges, inkább maradnék a Python szabványos könyvtárában.
Az oktatóanyagok, amelyeket eddig találtam, nagyon egyszerűnek indulnak, majd hirtelen bekerülnek a harmadik féltől származó könyvtárakba, socketekbe, speciális webes keretrendszerekbe stb. Nincs mód erre csak a Python szálfűző modulon?
my_processor
-ben, igaz? 05.10.2015