我有两个任务,我需要调用两个不同的API来发送短信和电子邮件。在
视图.py在def ...:
...
send_payment_failed_sms.delay(payment_log.id, 1)
task_send_booking_failed_email(payment_log.id, 1)
但是我总是在发送短信的任务上遇到以下错误,但是发送电子邮件的任务工作正常:
^{pr2}$
任务.py在@shared_task(bind=True, base=MyBaseClassForTask, max_retries=5, default_retry_delay=1 * 60, soft_time_limit=15,
time_limit=30)
def send_payment_failed_sms(self, payment_id, reason):
try:
try:
payload = ""
headers = {'content-type': 'application/x-www-form-urlencoded'}
url = 'https://sms-site.com/apikey=' + api_key + '&to=%s&var1=%s' % (
mobile, payment_log.id
)
response = requests.request("GET", url, data=payload, headers=headers)
response = response.json()
if response['Status'] == 'Success':
print('Sent message'), response['Details']
else:
print('Error:', response['Details'])
except ConnectionError as exc:
print('connection error @ failed sms')
raise self.retry(exc=exc)
except PaymentLog.DoesNotExist:
...
此外,它不会在最大重试次数(即5次)内重试。你能告诉我我做错了什么吗?或者,有没有更好的方法在调用API时定义任务?在