如何解决如何在 celery 中模拟具有状态的长 I/O 数据库操作?
我想基于 long_task 模拟数据库 I/O 操作,但是我被困在如何在这种情况下实现工作流来处理 update_state,and catches
在回溯字段中发送。我得到了以下代码,但是如何在更现实的任务函数中模拟该队列的进度?
@shared_task
def long_task(self):
"""Background task that runs a long function with progress reports."""
verb = ['Starting up','Booting','Repairing','Loading','Checking']
adjective = ['master','radiant','silent','harmonic','fast']
noun = ['solar array','particle reshaper','cosmic ray','orbiter','bit']
message = ''
total = random.randint(10,50)
for i in range(total):
if not message or random.random() < 0.25:
message = '{0} {1} {2}...'.format(random.choice(verb),random.choice(adjective),random.choice(noun))
current_task.update_state(state='PROGRESS',Meta={'current': i,'total': total,'status': message})
time.sleep(1)
return {'current': 100,'total': 100,'status': 'Task completed!','result': 42}
def insert_db_demo(result):
print('insert db,result {}'.format(result))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。