我想扩展djcelery taskmeta表,例如,我有一个返回整数值的计划任务。
我想添加一个字段来存储这个值,这样我就可以将这个数据与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)发布于 2014-03-01 02:56:48
使用task.AsyncResult(task_id)。您可以在文档here中阅读有关它的更多信息。
https://stackoverflow.com/questions/22102780
复制相似问题