Add exception handling to the apns_sender script

This commit is contained in:
root 2018-09-09 00:17:14 +08:00
parent d84a156a02
commit 92dd024805

View file

@ -7,6 +7,7 @@ import signal
import sys import sys
import os import os
import logging import logging
import socket
@ -22,7 +23,10 @@ def redisLoop(apns, logger):
if data: if data:
info = data[1].split('|') info = data[1].split('|')
logger.info("Token: " + info[0] + " message: " + info[1]) logger.info("Token: " + info[0] + " message: " + info[1])
send_notif(apns, info[0], info[1]) try:
send_notif(apns, info[0], info[1])
except TypeError:
logger.info("Invalid token: " + info[0])
def sigint_handler(signal, frame): def sigint_handler(signal, frame):
@ -31,7 +35,10 @@ def sigint_handler(signal, frame):
def send_notif(apns, token_hex, message): def send_notif(apns, token_hex, message):
#token_hex = '602E96BF9BC15D7913871D4D90FEBD7E265500C9D22DCEC5A4AFA3FC36EBE4DC' #token_hex = '602E96BF9BC15D7913871D4D90FEBD7E265500C9D22DCEC5A4AFA3FC36EBE4DC'
payload = Payload(alert=message, sound="default", badge=1) payload = Payload(alert=message, sound="default", badge=1)
apns.gateway_server.send_notification(token_hex, payload) try:
apns.gateway_server.send_notification(token_hex, payload)
except socket.error:
apns = setup_apns()
def get_logger(): def get_logger():
logger = logging.getLogger("apns_logger") logger = logging.getLogger("apns_logger")
@ -45,13 +52,17 @@ def get_logger():
logger.addHandler(fh) logger.addHandler(fh)
return logger return logger
def setup_apns():
cert_file = "/root/ios_push_test/ios_prod.pem"
apns = APNs(use_sandbox=True, cert_file=cert_file)
return apns
def main(): def main():
logger = get_logger() logger = get_logger()
logger.info("Starting apns_sender") logger.info("Starting apns_sender")
cert_file = "/root/ios_push_test/ios_prod.pem" #apns = APNs(use_sandbox=False, cert_file=cert_file)
apns = APNs(use_sandbox=False, cert_file=cert_file) apns = setup_apns()
logger.info("Starting redis loop") logger.info("Starting redis loop")
redisLoop(apns, logger) redisLoop(apns, logger)
@ -60,6 +71,6 @@ def main():
pid = "/tmp/apns_sender.pid" pid = "/tmp/apns_sender.pid"
daemon = Daemonize(app="apns_sender", pid=pid, action=main) #daemon = Daemonize(app="apns_sender", pid=pid, action=main)
daemon.start() #daemon.start()
#main() main()