최근에 flask-sqlalchemy와 함께 flask-rq를 사용하여 모델 작업과 비동기 작업을 수행했습니다. Model 메서드를 호출 할 때 가끔 ResourceClosedError
오류가 발생하는 동안. 문제를 일으키는 원인은 내 rq-worker에게 무슨 일이 일어나는 지 모른다. 문제를 올바르게 재현 할 수 없습니다. 여기에 미리보기가 있습니다.flask-sqlalchemy와 함께 flask-rq를 사용하면 때때로 ResourceClosedError가 발생합니다.
worker.py
@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)
비동기 작업이 때때로 ResourceClosedError
ResourceClosedError: This result object does not return rows. It has been closed automatically.
if __name__ == '__main__':
with app.app_context():
QUEUE = get_queue()
worker = get_worker()
worker.push_exc_handler(retry_handler)
worker.work()
tasks.py
좋은 연습에 따라 문제를 해결하는 방법을 모릅니다. 나는 오랫동안 수색을 해왔고 같은 문제가있다. ref : Celery and SQLAlchemy - This result object does not return rows. It has been closed automatically
비동기 작업에서 sqlalchemy를 사용하여 이러한 경우에 대한 좋은 제안이나 예가 있습니까?