У меня есть задача celery, которая вызывает подпроцесс. Откройте ak shell cmd, но по какой-то причине выходные данные cmd сохраняются в поле пользователя, а идентификатор памяти процесса!?!?
[2019-02-09 21:35:05,526: INFO/MainProcess] Received task: MyProject.tasks.allocate_new_btc_address[08d7db34-5710-4224-be07-c968599d9039]
[2019-02-09 21:35:05,540: WARNING/ForkPoolWorker-9] <subprocess.Popen object at 0x7f31063d79b0>
[2019-02-09 21:35:05,540: INFO/ForkPoolWorker-9] MyProject.tasks.allocate_new_btc_address[08d7db34-5710-4224-be07-c968599d9039]: New BTC address has been allocated to a user account
[2019-02-09 21:35:05,540: INFO/ForkPoolWorker-9] Task MyProject.tasks.allocate_new_btc_address[08d7db34-5710-4224-be07-c968599d9039] succeeded in 0.012948354000400286s: None
iubcasiuiuBIUcb723iub7c8732iewe
tasks.py
@app.task
def allocate_new_btc_address(user_pk):
user = User.objects.get(pk=user_pk)
new_address = subprocess.Popen(['electrum', 'createnewaddress'])
try:
user.acc_btc_addr = new_address
user.save()
print(new_address)
logger.info("New BTC address has been allocated to a user account")
except Exception as e:
print(e)
это поле, которое сохраняется в поле:
<subprocess.Popen object at 0x7f31063d79b0>
заранее спасибо