Ошибка позиционного аргумента в задаче sheduling в python
Я получил ошибку позиционного аргумента, когда попытался запустить свой код, и do() передает дополнительные аргументы в функцию job посмотрите на код ниже
import schedule
from schedule import Scheduler
import threading
import warnings
import time
def paystack_webhookS (request):
user = request.user
remail = payload.customer.email
rfirst_name = payload.customer.first_name
amount = payload.data.amount
first_name = user.first_name
last_name = user.last_name
email = user.email
with transaction.atomic():
account = Account.objects.select_for_update().get(email = remail)
account.balance += amount
asof = account.modified
account.save(update_fields=[
'balance',
'modified',
])
return HttpResponse(status=200)
schedule.every(10).seconds.do(paystack_webhookS)
schedule.every(10).minutes.do(paystack_webhookS)
schedule.every().hour.do(paystack_webhookS)
while True:
schedule.run_pending()
time.sleep(1)
i got this error
schedule.run_pending()
return view_func(*args, **kwargs)
TypeError: inner() missing 1 required positional argument: 'request'
Эта ошибка возникает при попытке выполнить while True: schedule.run_pending() time.sleep(1) пожалуйста, помогите мне исправить это, так как запрос очень важен в этом коде
Функция, которую вы передаете в график (вы назвали ее "paystack_webhookS"), должна быть определена без аргументов.
def paystack_webhookS():
...
В вашем коде не указано, откуда берется переменная "request". Но если она не глобальная, а уже определена при инициализации задач расписания, вы могли бы работать с функцией-оберткой, создающей вашу настоящую функцию расписания:
def createScheduleFunction(requestParameter):
def __func():
user = requestParameter.user
...
return func
И затем:
schedule.every(10).seconds.do(createScheduleFunction(request))