djcelery テーブルを拡張したいと考えてtaskmeta
います。たとえば、整数値を返すスケジュールされたタスクがあります。
date_done
この値を格納するフィールドを追加して、テーブル内のフィールドと共にこのデータをグラフ化できるようにしtaskmeta
ます。
新しいモデルを作成し、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)