首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >扩展djcelery taskmeta表

扩展djcelery taskmeta表
EN

Stack Overflow用户
提问于 2014-03-01 02:14:11
回答 1查看 182关注 0票数 1

我想扩展djcelery taskmeta表,例如,我有一个返回整数值的计划任务。

我想添加一个字段来存储这个值,这样我就可以将这个数据与taskmeta表中的date_done字段一起绘制成图形。

我尝试创建一个新模型并与taskmeta表建立一个外键关系,然后在我的任务中基于task_id在这个新表中添加一行。

但我猜在任务执行期间,我不能这样做,因为我假设taskmeta数据在这一点上还没有保存,即:

代码语言:javascript
复制
 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)

添加任务代码:

代码语言:javascript
复制
@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)
EN

回答 1

Stack Overflow用户

发布于 2014-03-01 02:56:48

使用task.AsyncResult(task_id)。您可以在文档here中阅读有关它的更多信息。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22102780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档