djcelery taskmeta
테이블을 확장하고 싶습니다. 예를 들어 정수 값을 반환하는 예약 된 작업이 있습니다.djcelery 작업 메타 테이블 확장
taskmeta
테이블의 date_done
필드와 함께이 데이터를 그래프로 표시 할 수 있도록이 값을 저장할 필드를 추가하고 싶습니다.
새 모델을 만들고 taskmeta
테이블과 외래 키 관계를 만들려고했는데 내 작업 내에서 task_id
을 기반으로이 새 테이블에 행을 추가하려고했습니다.
하지만 작업이 실행되는 동안 나는 즉, taskmeta
데이터가이 시점에서 저장되지 않은 가정으로, 내가 할 수 없을 것 같아요
if mover.request.id:
try:
task = TaskMeta.objects.get(task_id=mover.request.id)
extend_task_info = TaskExtended(task=task)
extend_task_info.save()
except ObjectDoesNotExist:
logger.error('Task ID: %s not in the DB' % mover.request.id)
태스크 코드의 추가 :
@task()
def mover():
for root, dirs, files in os.walk(src_dir):
path = root.split('/')
for file in files:
counter = process_file(os.path.join(root, file))
if mover.request.id:
try:
tn = TaskMeta.objects.get(task_id=mover.request.id)
extend_task_info = TaskExtended(task=task)
extend_task_info.counter = counter
extend_task_info.save()
except ObjectDoesNotExist:
logger.error('Task ID: %s not in the DB' % mover.request.id)
오류가 있습니까? – Drewness
예 예외가 발생 함, 작업 ID : eb381eda-6f2e-4c2c-8731-f290c02e4d2d DB에 없음 –