1

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)
4

1 に答える 1

1

を使用しtask.AsyncResult(task_id)ます。詳しくはこちらのドキュメントをご覧ください。

于 2014-02-28T18:56:48.223 に答える