Python Celery:使用请求包混乱了我的变量

2024-03-28 23:32:51 发布

您现在位置:Python中文网/ 问答频道 /正文

我有个芹菜任务:

task.py

import requests as rq
import ...

@celery.task
def process_element(custid, element_code):
  element = Element.query.filter_by(element_code=element_code).first()
  payload = vars(element)
  del payload['_sa_instance_state']

  print('1:', payload)
  r = rq.post('http://localhost/feedbackquestion', json=payload, timeout=2)

  print('2:', payload)
  r = rq.post('http://localhost/process', json=payload, timeout=2)

结果是,第一个请求获取完整的负载,而第二个请求仅获取负载的一小部分。 这有什么逻辑吗

编辑: 通过使用copy.deepcopy of payload并在第二个请求中使用copied变量,我已经为自己解决了这个问题。但我还是不明白这里发生了什么


Tags: pyimportjsonlocalhosthttptasktimeoutcode