меня есть несколько тасок, одна рассылает почту и возвращает результаты об отправке, другая - генерирует отчеты.
Пришел к мнению, что для создания и возвращения результата таски нужно делать 2 отдельных и независимых эндпоинта, так как схема данных при создании и возвращении различается.
Остается вопрос, как именно это хранить? Пока что придумал следующее, но есть минусы:
1) Сделаем в базе модельку Reports, которая будет хранить в себе uuid задачи и id отчета. Пускай там так же будет имя файла с отчетом.
2) Когда ходим на эндпоинт /report/generate нам возвращается ID записи в таблице Reports. В саму же таблицу под капотом записывается UUID задачи, сама задача запускается.
3) Если нам нужно остановить генерацию отчета, я иду на эндпоинт /report/<id>/cancel. Под капотом сначала происходит селект по ID, а дальше выбирается из Reports UUID и стопается задача.
4) Примерно такой же воркфлоу у получения результата.
Херню придумал, не? Или всё же лучше все писать в мету внутри таски?
Поделитесь мыслями/опытом плиз.
P.S. Результаты задач в примере нужно хранить для статистики
халп, актуально
Обсуждают сегодня