Kürzlich zu erhöhen, habe ich verwendet, Kolben-rq mit Kolben-sqlalchemy einig Asynchron-Aufgabe mit dem Modell-Operationen zu tun. Während es gelegentlich den Fehler beim Aufrufen von Model-Methoden ausgelöst. Ich weiß nicht, was mit meinem Mitarbeiter passiert, um das Problem zu verursachen. Ich konnte das Problem nicht korrekt reproduzieren. Hier sind Schnipsel.Mit Kolben-rq mit Kolben-sqlalchemy gelegentlich ResourceClosedError
worker.py
if __name__ == '__main__':
with app.app_context():
QUEUE = get_queue()
worker = get_worker()
worker.push_exc_handler(retry_handler)
worker.work()
tasks.py (die einige Async-Aufgaben enthält)
@job
def async_restart_task(task_id):
creating_info = {"status": TaskStatus.Creating}
task = TaskModel.update_task(task_id, creating_info)
task = TaskModel.get_task_by_id(task_id)
service = get_service(task.service)
for jobs in iter_group(10, service.gen_jobs(task)):
JobModel.add_jobs(jobs)
der Asynchron Aufgabe gelegentlich erhöhen ResourceClosedError
ResourceClosedError: This result object does not return rows. It has been closed automatically.
Ich habe keine Ahnung, wie ich das Problem beheben kann, indem ich einer guten Übung folge. Ich habe lange gesucht und habe dasselbe Problem bekommen. Ref: Celery and SQLAlchemy - This result object does not return rows. It has been closed automatically
Gibt es irgendwelche guten Vorschläge oder Beispiele für diese Fälle, indem Sie sqlalchemy in einer async-Aufgabe verwenden?