Add exception handling to the apns_sender script
This commit is contained in:
parent
d84a156a02
commit
92dd024805
1 changed files with 18 additions and 7 deletions
|
|
@ -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()
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue