Сельдерей анализирует вывод JSON из подпроцесса - PullRequest
0 голосов
/ 22 февраля 2019

У меня есть celery period_task:

@periodic_task(run_every=(crontab(minute='*/1')), name="Check BTC Deposit", ignore_result=True)
def check_btc_deposit():
    users = User.objects.all()
    for user in users:
        check_addr = subprocess.Popen(['electrum' + ' ' + 'getaddressbalance' + ' ' + user.acc_btc_addr], shell=True, stdout=subprocess.PIPE).communicate()[0].decode('utf-8').strip()


        print(check_addr)

, который проверяет депозит Биткойн и возвращает следующий вывод JSON, каждую новую строку даты, например, "[2019-02-22 14: 52: 00,441: ПРЕДУПРЕЖДЕНИЕ/ ForkPoolWorker-15] "- это проверенный адрес:

[2019-02-22 14:52:00,441: WARNING/ForkPoolWorker-15] {
    "confirmed": "0",
    "unconfirmed": "0"
}
[2019-02-22 14:52:00,806: WARNING/ForkPoolWorker-15] {
    "confirmed": "0.057917",
    "unconfirmed": "0"
}

Теперь я хочу сохранить каждое изменение в базе данных для каждого связанного с ним адреса пользователя.

models.py:

class UserDepositBTC():
    user_addr = models.ForeignKey(User, on_delete=models.CASCADE)
    confirmed = models.IntegerField(default=0)
    unconfirmed = models.IntegerField(default=0)
    deposit_date = models.DateField(auto_now_add=True, null=True)

Как это сделать на задании из сельдерея?Как вы можете себе представить, это своего рода оболочка вокруг электронного кошелька BTC для создания под кошельков для каждого пользователя из MPK (Master-Public-Key).

Спасибо и BR

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...